`

升级版本后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文件上传

 

 

 

  • 大小: 22.7 KB
分享到:
评论

相关推荐

    ruby on rails 开发环境包(ruby1.8.7,rails2.2.3)

    在Rails 2.2.3时代,社区已经发展出很多插件和 gems(Ruby的扩展库),如Devise用于身份验证,CanCanCan进行授权管理,Paperclip或Carrierwave处理文件上传等。虽然这些可能需要适配老版本,但它们能极大地增强你的...

    Advanced Rails

    7. **Rails插件与Gem**:Rails社区提供了丰富的插件和Gem,如Devise用于身份验证,Paperclip或Carrierwave处理文件上传,Resque或Sidekiq实现后台任务队列。掌握如何选择和使用这些工具来扩展应用功能。 8. **Rails...

    ruby on rails最新版

    例如,Devise用于用户认证,CanCanCan用于授权管理,Paperclip或Carrierwave处理文件上传,Stripe或PayPal集成支付功能,以及各种数据分析和报表生成库等。 总的来说,这个压缩包对于Ruby on Rails的初学者或希望...

    ruby on rails 2.3.5 api html版

    10. **插件和Gem**:Rails的生态系统中,Gem是第三方库的主要形式,它们提供了额外的功能,如Devise用于身份验证,CanCanCan用于授权,Paperclip或Carrierwave处理文件上传等。 11. **部署**:了解如何将Rails应用...

    Rails.Recipes.Rails.3rd和源码

    10. **社区工具和插件**:介绍一些常用的Rails gem,如Devise用于用户认证,Paperclip或Carrierwave处理文件上传等。 附带的`rr2-code.zip`文件很可能包含了书中各章节示例代码,这将有助于读者更好地理解和实践书...

    Ruby-Administrate一个框架用于在Rails中创建灵活的强大的管理仪表板

    8. **插件系统**:Administrate有一个活跃的社区,提供了许多插件,可以扩展其功能,例如日期范围筛选器、多文件上传等。 9. **版本管理**:“e980d40”这样的版本号可能意味着在项目中锁定特定版本,以确保一致性...

    海宏自动升级update系统服务器端源代码.rar

    "Gs_Class"可能是指项目中的类库或模块,它们构成了自动升级系统的一部分,可能包含了处理升级逻辑、版本比对、文件传输等功能的代码。 总之,这个源代码包提供了一个完整的自动升级服务器端解决方案,包括了版本...

    imgix-rails:将imgix集成到Rails项目中的瑰宝

    imgix-rails是用于将集成到Ruby on Rails应用程序的宝石。 它建立在之上,提供了一些特定于Rails的接口。 ix_image_url 模型中的用法 链轮中的用法 与图像上传库一起使用 回形针和CarrierWave 重新提交 主动储存 ...

    在Rails和S3之间同步资产-Ruby开发

    运行bundle exec rake asset:precompile之后,您的资产将同步到S3存储桶,可以选择删除未使用的文件,而仅将其需要的文件上传。 它最初是构建的,旨在在Heroku上工作,但可以在任何平台上工作。 升级吗? 从1.x升级...

    cent7安装指定版本gitlab11.4.6.docx

    如果系统版本不符合需求,则需升级或更换系统。 #### 二、关闭防火墙 为了避免安装过程中防火墙造成的问题,需要关闭并禁用系统防火墙服务。 ```bash [root@localhost ~]# systemctl stop firewalld.service [root...

    asset_sync:在Rails和S3之间同步资产

    运行bundle exec rake asset:precompile之后,您的资产将同步到S3存储桶,可以选择删除未使用的文件,而仅将其需要的文件上传。 它最初是构建的,旨在在上工作,但可以在任何平台上工作。 升级吗? 从1.x升级? ...

    eventz_on_rails:небольшойучебныйпроектна在轨道上的Ruby

    Rails 6.0.3.5是这个项目的特定版本,该版本引入了多项新功能,如Action Cable支持实时通信、Active Storage简化文件上传处理,以及并行测试以加速测试套件的运行。在“eventz_on_rails”项目中,你可以学习如何利用...

    Ruby-RubyonRails应用程序的安全注意事项清单

    - 使用`bundle update`命令升级Rails及其依赖,但要谨慎对待破坏性更新。 2. **配置安全的环境**: - 设置正确的环境变量,如SECRET_KEY_BASE,以保护应用程序的敏感信息。 - 在生产环境中禁用开发者模式,以...

    rubygems-1.3.7

    RubyGems是Ruby编程语言的一个核心组件,它提供了一个便捷的包管理机制,使得开发者能够轻松地安装、管理和使用各种库和工具。...在升级到更高版本之前,了解和理解RubyGems的工作原理对于维护和管理这些项目至关重要。

    redmine-2.5.2.zip

    - 文档协作:上传和共享项目相关的文档,进行版本控制和评论交流。 - 通知和通信:通过邮件通知或内置的消息系统保持团队间的沟通。 5. **插件和定制**: Redmine有丰富的插件生态系统,可以通过安装插件来扩展...

    redmine-2.5.1.tar.gz

    Redmine 是一个开源的、基于Web的项目管理应用程序,它由Ruby on Rails框架构建。...在升级或安装新版本时,要特别注意数据迁移和兼容性问题。在社区论坛或文档中,你可以找到更多关于Redmine的使用和管理技巧。

    Redmine管理员手册

    1. 文档库:上传和管理项目相关的文档,支持多种文件格式。 2. 版本控制:与版本控制系统集成,查看文件历史和差异。 七、定制与扩展 1. 主题定制:更换Redmine的界面主题,以适应企业形象。 2. 插件与集成:安装...

    bitnami-redmine-windows

    在Windows环境下安装"Bitnami Redmine",用户无需手动配置服务器环境,如Ruby、Rails、MySQL或PostgreSQL等,因为这个打包版本已经将所有依赖项集成在一起。这极大地简化了安装过程,使得非专业IT人员也能轻松部署和...

    redmine-4.1.1.zip

    - **版本升级**:关注Redmine的新版本,适时进行升级以获取最新功能和安全补丁。 - **监控与调试**:使用日志和性能监控工具,确保系统正常运行,及时发现和解决问题。 以上就是关于Redmine 4.1.1的一些核心知识...

Global site tag (gtag.js) - Google Analytics