2017-07-13 29 views
0

私はsymfonyを使用しています。コンテンツを取得するためにCSVファイルをインポートしようとしています。 最初に私は私のエンティティ(PS:フィールドは、DBに格納すべきではありません):にフィールドimportFileを追加symfonyアップロードファイルをサーバに保存せずに

/** @var UploadedFile $importFile*/ 
private $importFile; 

/** 
* @return UploadedFile 
*/ 
public function getImportFile() 
{ 
    return $this->importFile; 
} 

/** 
* @param UploadedFile $importFile 
*/ 
public function setImportFile(UploadedFile $importFile = null) 
{ 
    $this->importFile = $importFile; 
} 

を、私は私にformTypeにフィールドを追加しました:

->add('importFile',FileType::class, array('label' => false,'attr'=>['id'=>'upload','style'=>''])) 

と私の見解で私は私の見解でアップロードファイルを取得--edit

を {{form_row(form.importFile)}}が、私はトンを提出する場合:私は、フォームフィールドをaded彼は、Ajaxで形成: - EDIT2

var form = $("[id^=" + "form" + "]"); 
$.ajax({ 
     url: url, 
     type: 'POST', 

     data: new FormData(form), 
     contentType: false, 
     cache: false, 
     processData:false, 
     success: function (data, status) 
     { 
      alert('rr'); 
     }, 
     error: function (xhr, desc, err) 
     { 


     } 
    }); 

が、私は私の要求にインポートされたファイルを取得しない:それは空を返し

dump($request->files->all()); 

ファイルを読むにはどうすればよいですか?

答えて

1

ファイル入力は、jQueryの.serialize()メソッドによってシリアル化されません。 AJAX経由でファイルデータをサーバーに送信する必要がある場合は、他の方法に頼らざるを得ません。

カップルのオプションは次のとおりです。

  1. FormDataを使用してターゲットとするユーザーのブラウザがFile APIをサポートしている場合。
  2. ファイルのアップロードを処理できるjquery-formのようなjQueryプラグインを使用しています。
+0

imputファイルフィールドにjquery-formを使用する例はありますか? –

+0

using formData私は空の結果をも持っています。私はdump($ request-> files-> all());を実行します。私はファイルをajax呼び出しのデータに設定しています(--edit2を参照) –

関連する問題