我正在使用 symfony ,我尝试导入csv文件以获取内容。 首先,我将字段importFile添加到我的实体(ps:该字段不应存储在DB中):
/** @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)}}
- 修改
我在我的视图中获取了上传文件,但是当我使用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());
它返回空。
我该怎么做才能阅读该文件?
答案 0 :(得分:1)
文件输入不是由jQuery的.serialize()方法序列化的。如果需要通过AJAX将文件数据发送到服务器,则必须采用其他方法。
有几种选择:
答案 1 :(得分:0)
Symfony 4为此提供了开箱即用的解决方案。 尝试使用FormData上传文件。