def upload_file
if !params['upload_file'].nil?
file = params['upload_file']
file_upload(file)
end
end
def file_upload(upload)
begin
FileUtils.mkpath(upload_path) unless File.directory?(upload_path)
if upload.kind_of?(StringIO)
upload.rewind
end
orig_name = upload.original_filename
base_name = File.basename(orig_name, ".*") # 取得文件名字
ext_name = File.extname(orig_name) # 取得文件扩展名
# 重命名
file_name = base_name + '_' + Time.now.strftime("%y%m%d") + ext_name
# 将文件写入磁盘
File.open(upload_path(file_name), "wb") { |f| f.write(upload.read) }
rescue
raise
end
redirect_to '/service/upload_file'
end
# 生成绝对路径
def upload_path(file_name = nil)
"#{RAILS_ROOT}/public/tagfiles/#{file_name.nil? ? '' : file_name}"
end
分享到:
相关推荐
1. **Ruby on Rails框架**:Ruby上传文件通常是在Ruby on Rails框架下进行的,这是一个用于快速开发Web应用的全栈框架,它遵循MVC(模型-视图-控制器)架构模式。 2. **Controller**:在Rails中,控制器负责处理...
Ruby-CarrierWave 是一个流行的文件上传库,专为Ruby Web框架如Rails和Sinatra设计,旨在提供一种更优雅、更灵活的方式来处理文件上传。它弥补了Ruby标准库在处理文件上传时的不足,提供了丰富的功能和易于定制的...
Ruby-Attache是一个用于处理文件上传的库,它为开发者提供了简单、安全的方式来管理应用程序中的文件上传功能。在Ruby世界中,Attache旨在提供一种优雅的API,使得开发者能够轻松集成文件上传到他们的Web应用中,...
3. **哈希存储**:为了增加安全性,库还可以选择使用哈希算法对上传文件的名称进行重命名,这样可以防止文件名冲突,同时隐藏原始文件名,降低敏感信息泄露的风险。 4. **存储策略**:`rack-secure-upload`支持本地...
Refile支持对上传文件进行预处理,如缩放图片、转换文件格式等。通过定义处理器,可以在上传时自动应用这些操作。例如,可以使用MiniMagick库来处理图像,实现按需生成不同尺寸的缩略图。 4. **安全考虑** Refile...
carrierwave-aliyun, 阿里云 OSS Ruby 上传组件,基于 Carrierwave
Shrine与ActiveRecord、Mongoid等ORM兼容,可以方便地将上传文件作为模型的附件。它提供了一个`Shrine::Attachment`模块,可以轻松地将文件上传功能添加到任何模型中。 8. **错误处理** Shrine提供了详细的错误...
接着,使用`Qiniu::RS::Client`创建一个客户端实例,并调用`put_file`方法上传文件: ```ruby client = Qiniu::RS::Client.new(auth) put_policy = Qiniu::RS::PutPolicy.new(bucket_name) upload_token = put_...
Paperclip允许你验证上传文件的类型,防止恶意文件上传。 4. **存储路径自定义** 可以根据需求自定义文件在服务器上的存储路径。 5. **版本控制** Paperclip允许保留文件的历史版本,方便回滚或比较。 6. **回...
本篇文章将深入探讨如何利用`fastlane`中的`Fastfile`脚本和`gym`命令来实现自动打包IPA文件,并将其上传至蒲公英或App Store。 首先,我们来理解`Fastfile`。`Fastfile`是`fastlane`的核心,它是一个Ruby脚本,...
3. "update_bilibili.rb":这是一个Ruby源代码文件,很可能就是实现自动上传B站视频功能的核心脚本。用户可能需要了解或修改这个文件以适应他们的特定需求,比如改变上传目录或调整上传参数。 综合以上分析,这个...
总结来说,处理Rails中上传文件保存中文文件名乱码的问题,主要涉及以下几个步骤: 1. 检查并确认文件上传过程中涉及的所有编码环境(如服务器文件系统、数据库存储等)是否兼容UTF-8。 2. 使用`iconv`库或`String#...
3. 文件数量控制:插件可以控制上传文件的数量,限制上传文件的个数。 4. 多浏览器兼容:插件兼容多种浏览器,包括 IE6、7、Firefox 等,确保插件在不同浏览器中的正确运行。 使用说明 1. 样式设置:插件提供了...
PaperClip是由Thoughtbot开发的一个Ruby库,它允许开发者将文件上传功能轻松地添加到ActiveRecord模型中。让我们深入探讨一下这个强大的工具及其工作原理。 首先,PaperClip的核心功能是将文件上传与数据库记录关联...
`name`字段用于存储上传文件的名称,而`person`字段则是一个`MEDIUMBLOB`类型,用于保存上传文件的二进制流。 BLOB(Binary Large Object)是一种专门用于存储大量二进制数据的字段类型,适合用于图像、音频、视频...
1. **读取和写入图像**:RMagick提供了一种简单的方式来打开和保存图像文件。例如,`Magick::Image.read('image.jpg')`可以读取一个JPEG图像,`image.write('new_image.png')`则可以将其另存为PNG格式。 2. **图像...
这是公司的管理手册,以及开发工具RUBY...上传上来,方便一点,但是最让我感觉失望的就是只能上传50M 的文件,我有几个很重要的安装软件,要搭建在自己笔记本上的,日本人的软件网上压根就下载不到。。。纠结。。。。
对于文件操作,`paperclip` 和 `carrierwave` 是常见的文件上传插件,它们方便地处理图片和其他文件的上传和存储。另外,`active_storage` 是 Rails 5.2 引入的内置文件处理系统,与 AWS S3 或其他云存储服务集成,...
此外,Uploadify还支持多种自定义设置,例如限制上传文件类型、大小、更改按钮文本等,这为我们提供了高度的灵活性来适应不同的项目需求。 总结来说,Uploadify是一个强大的jQuery文件上传插件,能够帮助开发者实现...
Plupload是一个功能强大的Web文件上传工具,专为处理大规模文件上传和优化用户体验而设计。它提供了多语言支持,包括JavaScript、Flash、Silverlight和HTML5等多个版本,确保在各种浏览器和设备上都能运行良好。...