> http://symfony.com/doc/current/reference/forms/types/file.html
> http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html
我决定使用W3C FileReader API(基于下面的文档URL)来处理来自客户端的文件,并管理从视图到实体的底层数据.目前支持客户端上的拖放,元数据和多个选择.
> http://www.html5rocks.com/en/tutorials/file/dndfiles/
> http://playground.html5rocks.com/#reading_file_metadata
> https://developer.mozilla.org/en-US/docs/Using_files_from_web_applications
但是我想给UploadedFile对象多一次机会,而我遇到的主要问题是我无法在我的实体(FileUpload类型)中创建文件属性来存储多个文件数据.我的输入如下:
<input type="file" id="upload_files" name="upload[files][]" required="required" multiple="multiple" />
理论上如果我将名称作为一个数组,fileUpload应该包含文件,但它不包含. UploadedFile对象可以存储多个文件数据吗?还是单身?
http://api.symfony.com/2.2/Symfony/Component/HttpFoundation/File/UploadedFile.html
还尝试将$files属性初始化(在实体的__construct中)作为数组并修改setFiles()以存储新数组索引的$this-> files [] = $file; … 你懂.
但是Symfony告诉我那个例外:
The form’s view data is expected to be an instance of class Symfony\Component\HttpFoundation\File\File,but is a(n) array. You can avoid this error by setting the “data_class” option to null or by adding a view transformer that transforms a(n) array to an instance of Symfony\Component\HttpFoundation\File\File.
我对数据变换器并不熟悉.并且无法弄清楚现在怎么办.或者如果使用每个文件数据获取UploadedFile对象真的很有用.
在综合中…有了这个给定的信息,以及下面的代码.任何人都可以帮我获取FileUpload对象正确数量的文件,而不仅仅是最后添加的文件?谢谢
在github上做了一个回购:https://github.com/jeflopo/fileupload
为简洁起见,以下是相关文件:
>表格:
https://github.com/jeflopo/fileupload/blob/master/src/Acme/DemoBundle/Form/Type/FileUploadType.php
>实体:
https://github.com/jeflopo/fileupload/blob/master/src/Acme/DemoBundle/Entity/FileUpload.php
>控制器(只需看看uploadAction):
https://github.com/jeflopo/fileupload/blob/master/src/Acme/DemoBundle/Controller/DemoController.php
>观点:
https://github.com/jeflopo/fileupload/blob/master/src/Acme/DemoBundle/Resources/views/Demo/upload.html.twig
>处理客户端上文件的JavaScript(不影响服务器中的文件行为):
https://github.com/jeflopo/fileupload/blob/master/src/Acme/DemoBundle/Resources/public/js/upload.js
现在要做的是为上传的文件创建唯一的文件名,然后对每个文件使用move方法.如果你不移动它们,文件将不会被保存!
当我将map映射为false时,您的实体不包含这些文件.您必须使用刚刚创建的文件名创建一个数组,以保存文件路径.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。