2017-07-13 138 views
0

我正在使用symfony我嘗試導入csv文件以獲取內容。 首先我加場的importfile到我的實體(PS:現場不應該存儲在DB):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'=>''])) 

在我看來,我交鋒表單字段: {{form_row(form.importFile)}}

--edit

我得到我的觀點上傳文件,但是當我提交ŧ他與阿賈克斯形成: - 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

你有任何使用jQuery格式的輸入文件字段的例子嗎? –

+0

使用formData我也有一個空結果wheen我做轉儲($ request-> files-> all());儘管我在ajax調用的數據中獲取了文件集(請參閱--edit2) –

相關問題