`

rails 上传文件和删除文件

 
阅读更多

文件上传,页面代码:

<%form_tag '/project/add_attach',:multipart=>true do%>
    <%=file_field 'path'%>
    <%=submit '提交'%>
<%end%>

 

#文件上传处理,只需在数据库表中,记录路径就可以了,下面代码写在controller层:

 name = Time.now.strftime("%y%m%d%I%M%S") + 'size'+ params[:path].size.to_s  ##防止新文件名重复
 suffix=File.extname("#{params[:path].original_filename}")  #取旧文件名
 name<<suffix
 directory = "public/data"
 path = File.join(directory, name)                        ##传换路径,格式:/public/data/xx.xx
 File.open(path, "wb") { |f| f.write(upload.read) }  ##写文件内容

   params[:path]页面上传过来的一个file参数 (格式:与#<Action...>相似)    

 

##下载文件,controller层:

 def download
       send_file params[:path]  #只需传文件路径,格式:/public/data/xx.xx  
 end

 

 

##删除文件,写在model层(只须传一个文件名(xx.xx)):

 def self.filedelete(name)
     if File.exist?("#{File.dirname(__FILE__)}/../../public/data/#{name}")
        File.delete("#{File.dirname(__FILE__)}/../../public/data/#{name}")
     end
 end

 

分享到:
评论

相关推荐

    rails 文件上传

    在Ruby on Rails框架中,...通过理解以上知识点,你将能够构建一个功能完善的Rails文件上传系统,确保用户能安全、便捷地上传和管理他们的文件。在实际项目中,还需要考虑性能优化、错误处理和用户体验等方面的问题。

    升级版本后Rails的文件上传

    6. **测试**:确保为文件上传功能编写测试,覆盖上传、删除、替换和访问已上传文件的各种场景。升级后,这些测试能帮助识别并修复可能出现的问题。 7. **性能优化**:考虑文件上传的性能,如分块上传、预处理(如...

    ruby on rails最新版

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

    Rails的自动完成分页插件

    这些插件提供了处理文件上传、存储、版本控制和删除的功能。它们可以将文件存储在本地磁盘、云服务如Amazon S3或Google Cloud Storage上,同时提供方便的模型关联和数据库记录。 3. **分页**: 分页是Web应用中...

    rails-1.0.0

    10. **社区和生态系统**:Rails拥有庞大的开发者社区,产生了许多优秀的第三方Gem库,如Devise(身份验证),Paperclip(文件上传),Pundit(权限控制)等,丰富了Rails的功能。 Rails 1.0.0的发布标志着Web开发...

    Ruby-CarrierWaveRubyWeb框架更优雅的解决方案文件上传

    Ruby-CarrierWave 是一个流行的文件上传库,专为Ruby Web框架如Rails和Sinatra设计,旨在提供一种更优雅、更灵活的方式来处理文件上传。它弥补了Ruby标准库在处理文件上传时的不足,提供了丰富的功能和易于定制的...

    ruby on rails 2.3.5 api html版

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

    Rails入门教程一(翻译).pdf

    此外,Rails提供了丰富的插件和gem(Ruby gem),例如Devise用于身份验证,CanCanCan处理授权,Paperclip或Carrierwave用于文件上传等,这些都能极大地增强应用的功能。 在开发过程中,Rails还提供了TDD(测试驱动...

    Ruby on Rails 指南 v5.0.1 中文版

    - **上传文件**:介绍如何处理文件上传操作。 - **定制表单生成器**:解释如何创建自定义的表单生成器。 - **理解参数命名约定**:解释表单提交时参数的命名规则。 - **处理外部资源的表单**:指导如何处理来自外部...

    Rails 3 in Action

    **Rails 3 in Action** 这本书介绍了 **Ruby on Rails**(简称 Rails)这一 Web 开发框架的核心概念和技术细节。Rails 自发布以来便以其优雅、高效、易于使用的特性而闻名,它极大地简化了 Web 应用程序的开发过程。...

    Ruby-attache一个文件上传方式

    这个例子展示了如何在Rails控制器中处理文件上传和删除。当然,实际应用中可能需要根据具体需求进行更复杂的定制。 总的来说,Ruby-Attache是一个强大的工具,简化了文件上传的处理,同时提供了丰富的功能和高度的...

    Ruby on Rails 学习案例

    10. **Gem包管理**:Ruby的Gem是类似Python的pip或Node.js的npm的包管理工具,Rails应用广泛依赖于Gems,如Devise用于身份验证,Pundit或CanCanCan用于权限管理,Carrierwave或Paperclip处理文件上传等。 11. **...

    Ruby On Rails中文教材(PDF)

    10. **Gem包管理**:Ruby的Gem系统使得安装和管理第三方库变得简单,如Devise用于用户认证,Paperclip或Carrierwave处理文件上传,Bootstrap提供前端UI组件等。 学习Rails的过程中,实践尤为重要。通过完成实际项目...

    应用Rails进行敏捷Web开发中文第三版

    6. **插件和gem**:Rails社区有大量的插件和gem可供扩展功能,如Devise用于用户认证,Cancancan用于授权,或者Paperclip和Carrierwave处理文件上传。 7. **Ajax和JavaScript**:Rails 2.2.2支持集成Prototype ...

    Ruby on Rails入门例子

    在命令行中输入 `rails new mybook`,这会生成一个名为 "mybook" 的新项目目录,包含所有必要的文件和目录结构。其中,`config/routes.rb` 文件定义了应用程序的路由,`app/models` 目录存储模型文件,`app/...

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

    2. **初始化**:执行`rails generate administrate:install`命令,这将生成基础的路由和应用所需的配置文件。 3. **资源定制**:通过在`app/admin`目录下为每个数据库模型创建一个新文件,可以自定义每个管理页面的...

    Ruby-racksecureupload安全得上传文件

    5. **持久化和清理**:根据存储策略,你可能需要将临时文件移动到永久存储位置,或者在处理完文件后删除临时文件。 总的来说,`rack-secure-upload`为Ruby开发者提供了一套强大的工具,使得在处理文件上传时能够...

    应用rails进行敏捷web开发

    10. **Rails社区和生态**:Rails有庞大的开发者社区,提供了众多高质量的开源gem,如Devise(用户认证)、Paperclip或Carrierwave(文件上传)、Pundit或CanCanCan(授权)、Resque或Sidekiq(后台任务处理)等。...

Global site tag (gtag.js) - Google Analytics