Symfony2 XmlHttpRequest文件上传问题。表单模型的文件属性未设置

时间:2013-12-14 23:39:22

标签: ajax symfony symfony-forms

拥有一个使用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
    

我无法上传文件。我该如何解决这个问题?

0 个答案:

没有答案