拥有一个使用Ajax上传文件的表单。 (drop-zone up-loader)
制作包含字段的表单类型:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add("file", "file");
$builder->add("submit", "submit");
}
模型类看起来像:
class DropzoneFileModel {
/**
*
* @var UploadedFile
* @Assert\File(maxSize="4096k")
*/
protected $file;
/**
*
* @return UploadedFile
*/
public function getFile()
{
return $this->file;
}
/**
*
* @param \Symfony\Component\HttpFoundation\File\UploadedFile $file
*/
public function setFile(UploadedFile $file)
{
$this->file = $file;
}
..
}
问题:
当请求不是通过Ajax发出时,模型对象的$ file属性具有上传的文件
$formModel->getFile() == UploadedFile
$request->files->get("file") == null
当请求是XmlHttpRequest时,未设置$ file属性,但该文件保留在$ request->文件集合中。
$formModel->getFile() == null
$request->files->get("file") == UploadedFile
我无法上传文件。我该如何解决这个问题?