これが私のBrandController.phphttps : //gist.github.com/a958926883b9e7cc68f7#file-brandcontroller-php-L53です
カスタムモジュールのすべてのファイルを調べて、カスタムモジュールメーカーから提供されたファイルと比較しましたが、大きな違いは見つかりませんでした。
これが私のBrandController.phphttps : //gist.github.com/a958926883b9e7cc68f7#file-brandcontroller-php-L53です
カスタムモジュールのすべてのファイルを調べて、カスタムモジュールメーカーから提供されたファイルと比較しましたが、大きな違いは見つかりませんでした。
複数のファイルをアップロードしようとしていますか? 同じ名前の複数の fileupload 要素を使用している場合は、アイテムの配列が取得されます。
したがって、次の行が呼び出されると、
//this way the name is saved in DB
$data['filename'] = $_FILES['filename']['name'];
価値があるでしょう
["name"]=>array(2) {
[0]=>string(9)"file0.txt"
[1]=>string(9)"file1.txt"
}
各 $_FILES['filename']['name'] をループするようにコードを更新し、ファイルを個別にアップロードして保存する必要があります。
知らないうちに複数のファイルをアップロードしている可能性があります。それが意図されていない場合は、HTML をチェックして、タグの name 属性をチェックしてください。(このような) 配列であってはなりません。
<input type="file" name="my_files[]" />
データベースに Array() しか表示されない場合は、実際に複数のファイルをアップロードしていることを意味します。ループを使用して処理できます。
1 つの画像をアップロードしていると確信している場合は、@Palanikumar の提案に従うことができます。print_r() を使用して $_FILES を表示し、ここに貼り付けます。それを使用したくない場合は、使用できます
json_encode($the-data-you-are-going-to-insert-to-the-database);
print_r() 関数を配置する場所がわからない場合は、このファイルの 56 行目以降に配置できます。
https://gist.github.com/desbest/a958926883b9e7cc68f7#file-brandcontroller-php-L53
if(isset($_FILES['filename']['name']) && $_FILES['filename']['name'] != '') {
print_r($_FILES);
die;
saveAction() が ajax 関数内で呼び出されている場合は、ajax 応答をログに記録する必要があります。あなたがjqueryを使用していると仮定して..
$ajaxResponse = $.POST({...});
console.log($ajaxResponse.responseText);
次に、ブラウザのコンソール内で表示できます。何も表示されない場合は、非非同期リクエストを使用できます
$ajaxResponse = $.POST({
// your options,
// your another option,
async: FALSE
});
通常、ファイルのアップロードは配列形式で返されます。アップロードされた各ファイルには、名前、タイプ、サイズ、一時的な名前、エラーなどの情報が含まれます。ファイル情報は、印刷関数 ( print_r($_FILES) ) を使用して取得できます。したがって、ファイルの名前を表示したい場合は、次のようなものを使用する必要があります$_FILES['filename']['name']
印刷機能とデバッグツールを使用し、ループを使用してファイル情報を保存します。
詳細については、こちらをご確認ください。
フォームの enctype を設定していないため、画像は送信されません。コードをに更新しました
$form = new Varien_Data_Form(array( 'enctype' => 'multipart/form-data'));