升级版本后Rails的文件上传


在JE上搜索Rails文件上传,发现大部分搜到的文章,都由于版本的问题,不能用了。

比如:hideto 老大的 Rails 文件上传   

 

或者,最典型的你在使用file_field时遇到了

 

写道
undefined method `original_filename' for

 

的问题。实际上,不是不好用了,而是,升级后的Rails不支持了。

 

 

这时,我看到很多人,就开始说,用插件吧,Rails上传文件的插件很多,这也是真的。而且,我比较推荐的是下面三个:

uploadcolumn    比较容易用    

attachment_fu     Rails框架核心人员开发,该插件是acts_as_attachment的重写版本

File Column 最早的这类插件 

 

这有一篇AJAX的使用插件的例子,或者会用到

活用插件attachment_fu,在rails 中以AJAX方式上传文件

 

然而,尺有所短,寸有所长。比如,大部分这些插件为了更好的支持图片上传处理,一般这些插件都依赖两个图形软件: ImageMagick 及其 Ruby接口软件包RMagickFreeImage 及其 Ruby接口软件包ImageScience 。而前者在Ruby语言内应用更加广泛一些。注意像文件 RMagick-1.14.1_IM-6.3.0-7-Q8.zip 已经包含了软件ImageMagick,软件ImageMagick也要安装。

 

所以,Rails 的无组件上传也是用得到的。而大部分之前不能用的Rails上传,也不是因为什么特别严重的问题。其实,稍微改一下就能用。我粗浅的研究一下,希望,能够带来帮助。

 

<%= form_tag({:action => 'save'}, :multipart => true) %>  
Upload your file: <%= file_field("file", "file") %>  
<br/>  
<%= submit_tag("Upload file") %>  
<%= end_form_tag %>  

 会提示:

 

实际可以改为:

<% form_tag({:action => 'save'}, {:multipart => true}) do %>     
Upload your file: <%= file_field("upload", "datafile") %>     
<br/>     
<%= submit_tag("Upload file") %>     
<% end %> 

 

 

而,Rails2.×后比较支持的写法应该如下:

 

<%form_for (:data_file, :url=>{:action => 'uploadFile'}, 
                        :html=>{:multipart => true}) do%>
<p><label for="upload_file">Select File</label> : 
<%= file_field 'file', 'file' %></p>
<%= submit_tag "Upload" %>
<% end %>

 

 下面,是一个在Rails 2.2.2 和2.3.2 下可以运行的,最基本的不用组件上传的代码。需要的点击

 

rails异步上传文件

Rails中文件上传

rails实现多文件的上传

rails 2.0文件上传

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值