运行环境,Mac 、ubuntu
rails 4.2.1
以前做过几次图片,文件上传的功能,但是每次做的时候都要重新想怎么做,汗。。。,还是记下来吧。
其他主流上传gem包carrierwave和paperclip
1.在页面添加form表单上传图片或者文件
=form_for :file ,:url=> '/add_excel' do |f| =f.file_field :file , :accept => '.docx .txt' =f.submit
在:accept 中可以指定上传文件的类型,不符合后缀名的文件不可以上传,可以制定多个
2.在contrller 里获取文件的拓展名
File.extname(params[:file][:file].original_filename)
这里嵌套有点深,而且original_filename不能用[: original_filename]获取,因为params的数据是这样的。
Parameters: {"utf8"=>"✓", "authenticity_token"=>"ZzuhBoEuOH1i4Gp68GrVe57uA3X0dmhMH4SjanDuTJ3TMUbOJhld1+pD7JXtt7urTQUfrdruoTuwrcQZcWWBpw==", "file"=>{"file"=>#<ActionDispatch::Http::UploadedFile:0x007fc009933ac0 @tempfile=#<Tempfile:/var/folders/ks/tln9bzyj1j15m12mpvtq54wc0000gn/T/RackMultipart20150603-56080-cj4lsy.docx>, @original_filename="“吃货”游戏PRD(5月19).docx", @content_type="application/vnd.openxmlformats-officedocument.wordprocessingml.document", @headers="Content-Disposition: form-data; name=\"file[file]\"; filename=\"\xE2\x80\x9C\xE5\x90\x83\xE8\xB4\xA7\xE2\x80\x9D\xE6\xB8\xB8\xE6\x88\x8FPRD\xEF\xBC\x885\xE6\x9C\x8819\xEF\xBC\x89.docx\"\r\nContent-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document\r\n">}, "commit"=>"Save File"}
3. 将文件的内容读出来
content = params[:file][:file].read
4.把读出来的文件内容写入到指定的文件里
File.open(file_path,'wb+') do |item| item.write(content) end
拼接路径时注意把2.取到的扩展名添加上
如果文件不存在File.open会先创建再打开
5.最后将文件路径存到数据库里方便前台页面展示
相关推荐
rails_kindeditor将帮助您的rails应用程序与kindeditor集成,包括图像和文件上传。 安装及使用 将此添加到您的Gemfile gem 'jquery-rails' gem 'rails_kindeditor' 注意:Rails 5.1已从默认设置中删除了对jQuery...
通过Ruby on Rails构建Instagram 我将指导您通过构建Instagram应用程序逐步学习Ruby on Rails。 完成这个项目后,您会学到什么? 如何启动一个新的Rails应用程序? Craft的设计系统 了解MVC(模型-视图-控制器)...
人脸识别研究我在研究 Ruby on Rails 中的人脸识别时发现的所有文件。 最终项目包括: Flash 前端用于拍照、裁剪和压缩 (jpg) 并将其上传到后端。 Ruby on Rails 后端OpenCV 通过 Python 包装器。 我用 ruby 的...
一个简单的 ruby on rails 应用程序。 允许用户使用用户名、密码和头像创建帐户。 登录后,用户可以将照片上传到他们的帐户并在照片中标记其他用户。 安装和使用 运行 Postrges 服务器 克隆或下载此存储库并 cd ...
使用Active Storage,Stimulus.js和Dropzone.js进行Ruby on Rails拖放上传本教程是关于使用Ruby on Rails 6.0中的Active Storage使用Stimulus.js和Dropzone.js从头开始创建拖放式上传体验。目的这次体验的目标是引入...
可实现多文件的同时上传,控制文件的格式,数量,同时兼容IE6,7,firefox,易于扩展
与支持标准HTML表单文件上传的任何服务器端平台(PHP,Python,Ruby on Rails,Java,Node.js,Go等)一起使用。 演示版 产品特点 多文件上传: 允许一次选择多个文件并同时上传。 拖放支持: 允许通过从桌面或...
而不是使用发送CSS样式的电子邮件,没有带有的麻烦使用架构和路线信息对Rails类进行使用和在开发环境中进行性能检查使用dotenv加载环境变量主动作业队列适配器的Sidekiq默认载波文件上传(开发,
一个Ruby on Rails应用程序,用于上传模因,存储您的收藏集,通过主题标签搜索其他模因,并且可以根据需要将模因设为私有。 一个演示项目。 除其他外,它使用: Carrierwave和RMagic上传图像; Devise and Pundit...
而不是使用发送CSS样式的电子邮件,没有带有的麻烦使用架构和路线信息对Rails类进行使用和在开发环境中进行性能检查使用dotenv加载环境变量主动作业队列适配器的Sidekiq默认载波文件上传(开发,
CarrierWave该gem提供了一种简单且极为灵活的方式来从Ruby应用程序上传文件。 它与基于Rack的Web应用程序(例如Ruby on Rails)一起很好地工作。 信息RDoc文档av CarrierWave该gem提供了一种简单且极为灵活的方式来...
该课程称为 Internet Programming,我们主要在其中使用 HTML、JS 和 CSS 研究了 Ruby on Rails。 FirstSight 是一个简单的在线约会网络应用程序,用户可以通过过滤搜索找到匹配项,还可以通过消息与其他用户交流。 ...
Ruby on Rails 资产 Rails 5中的自定义字体 快取 在测试中禁用缓存 装饰工 Disposable :: Twin中的JSON字段 弹性搜索 耐嚼 文件附件工具 神社 神社直接上传到s3 神社直接上传到s3(has_many) 记录中 在...
20周内有20个Web应用程序 您好,欢迎来到我的20挑战20资料库。 此仓库将包含在此20周的视频系列过程中...•第14周-快速迭代–通过在Ruby On Rails中使用Rspec TDD减少错误的发生6 影片教学 博客教程 •第15周-使用Axio
它使用Ruby on Rails,后端使用PostgreSQL数据库,前端使用React.js和Redux。 特征 使用RESTful API上传,编辑,删除和查看曲目 创建歌曲并将其添加到播放列表 连续播放曲目 评论曲目 查看每个曲目的播放计数 搜索...
概述jQuery Upload File插件提供了带有进度条的多个文件上传功能,可与支持标准HTML表单文件上传功能的任何服务器端平台(Google App Engine,PHP,Python,Ruby on Rails,Java等)一起使用。演示版文献资料
重要说明:这是4.0.0+的自述文件。 请注意, 依赖项已更新,不再干扰名称空间。 但是,如果您在Rails应用程序中使用该依赖关系,则需要按照将所有Client和Filelink类声明更改为FilestackClient和FilestackFilelink ...
java党建平台源码 Ruby & Rails 学习资源 [在线 YAML 解析器](Online YAML Parser) 好文共分享 [Ruby ...Ruby) ...ruby ...rails ...ruby ...ruby ...Ruby ...ruby ...rails ...ruby ...ruby ...Ruby ...通吃(配置文件和插件包上传到gi
笔记编程Ruby Ruby元编程 Ruby on Rails教程 敏捷Web开发Rails 5 附注4(21-24) 杂项Ruby其他注释Rails杂项说明上传文件说明注意事项Sidekiq注意Webpacker注意相关的其他项目及笔记: 资本主义研究耙研要学习: ...