image – 使用一个多文件选择输入可以使用回形针上传多个文件吗
所以我在我的rails 3.1 app中使用paperclip,
我使用关系将图像添加到项目中,这样我每个项目可以有多个图像. 我想要做的是能够单击浏览按钮并使用单个字段选择多个文件.而不是每次都要为每个场一次拍摄一张图像. 任何人都知道如何做到这一点,或有一个很好的选择,这样做不需要Flash插件? 解决方法
我只使用一个控制器,没有关联(我只是将多个图像上传到一个图库),但我已经成功地做了你要求的事情.您将需要调整它以适应您的关系,但它对我来说很好(虽然在IE中不起作用),但我确信它打破了一些rails惯例,但这是我想要建立的唯一方法功能.
第一步是使用HTML5多标记将upload字段设置为接受多个文件: <%= f.file_field :photo,multiple: 'multiple' %> 或者,如果你像我一样使用simple_form: <%= f.input :photo,input_html: { multiple: 'multiple' } %> 下一步是更改创建控制器操作以接受和处理多个文件.这是我确信有些人会反对的,但是,嘿,它有效! def create params[:photo][:photo].each do |photo| @params = {} @params['photo'] = photo @photo = Photo.new(@params) if !@photo.save respond_to do |format| format.html { redirect_to new_photo_path,error: 'An error occured uploading.' } end end end respond_to do |format| format.html { redirect_to photos_path,notice: 'Photos were successfully uploaded.' } end end 它比它看起来更简单 – 对我来说控制器名称是照片,字段名称也是如此,它解释了参数[:photo] [:photo].它基本上只需要获取请求的:photo属性(控制器通常需要一个文件)并迭代上传的文件,为每个文件创建一个新的Photo并将@params的photo属性依次设置为每个文件然后尝试将其保存为新照片,并在发生错误时发出警报,否则一旦完成,它将重定向以显示照片. 正如我所说,这对我很有用,我希望它对你也有帮助:) 编辑如果这没有帮助,你能告诉我原因吗?在有人花时间帮助之后忽略这条消息并不会让其他人想要帮助你. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |