`

ruby 上传文件

    博客分类:
  • ruby
阅读更多
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
分享到:
评论

相关推荐

    ruby上传文件

    1. **Ruby on Rails框架**:Ruby上传文件通常是在Ruby on Rails框架下进行的,这是一个用于快速开发Web应用的全栈框架,它遵循MVC(模型-视图-控制器)架构模式。 2. **Controller**:在Rails中,控制器负责处理...

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

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

    Ruby-attache一个文件上传方式

    Ruby-Attache是一个用于处理文件上传的库,它为开发者提供了简单、安全的方式来管理应用程序中的文件上传功能。在Ruby世界中,Attache旨在提供一种优雅的API,使得开发者能够轻松集成文件上传到他们的Web应用中,...

    Ruby-racksecureupload安全得上传文件

    3. **哈希存储**:为了增加安全性,库还可以选择使用哈希算法对上传文件的名称进行重命名,这样可以防止文件名冲突,同时隐藏原始文件名,降低敏感信息泄露的风险。 4. **存储策略**:`rack-secure-upload`支持本地...

    Ruby-Refile一个现代的文件上传Ruby应用程序库它是简单的但功能强大

    Refile支持对上传文件进行预处理,如缩放图片、转换文件格式等。通过定义处理器,可以在上传时自动应用这些操作。例如,可以使用MiniMagick库来处理图像,实现按需生成不同尺寸的缩略图。 4. **安全考虑** Refile...

    carrierwave-aliyun, 阿里云 OSS Ruby 上传组件,基于 Carrierwave.zip

    carrierwave-aliyun, 阿里云 OSS Ruby 上传组件,基于 Carrierwave

    Ruby-Shrine用来处理文件上传的Ruby工具包

    Shrine与ActiveRecord、Mongoid等ORM兼容,可以方便地将上传文件作为模型的附件。它提供了一个`Shrine::Attachment`模块,可以轻松地将文件上传功能添加到任何模型中。 8. **错误处理** Shrine提供了详细的错误...

    Ruby-上传图片到七牛云的简单demo

    接着,使用`Qiniu::RS::Client`创建一个客户端实例,并调用`put_file`方法上传文件: ```ruby client = Qiniu::RS::Client.new(auth) put_policy = Qiniu::RS::PutPolicy.new(bucket_name) upload_token = put_...

    rails上传文件_paperclip

    Paperclip允许你验证上传文件的类型,防止恶意文件上传。 4. **存储路径自定义** 可以根据需求自定义文件在服务器上的存储路径。 5. **版本控制** Paperclip允许保留文件的历史版本,方便回滚或比较。 6. **回...

    Ruby-fastlane快车道Fastfile脚本gym文件编写套用自动打包ipa上传蒲公英AppStore

    本篇文章将深入探讨如何利用`fastlane`中的`Fastfile`脚本和`gym`命令来实现自动打包IPA文件,并将其上传至蒲公英或App Store。 首先,我们来理解`Fastfile`。`Fastfile`是`fastlane`的核心,它是一个Ruby脚本,...

    bilibili自动上传视频(纯ruby)

    3. "update_bilibili.rb":这是一个Ruby源代码文件,很可能就是实现自动上传B站视频功能的核心脚本。用户可能需要了解或修改这个文件以适应他们的特定需求,比如改变上传目录或调整上传参数。 综合以上分析,这个...

    Rails中上传文件保存中文文件名乱码

    总结来说,处理Rails中上传文件保存中文文件名乱码的问题,主要涉及以下几个步骤: 1. 检查并确认文件上传过程中涉及的所有编码环境(如服务器文件系统、数据库存储等)是否兼容UTF-8。 2. 使用`iconv`库或`String#...

    rails_多文件上传

    3. 文件数量控制:插件可以控制上传文件的数量,限制上传文件的个数。 4. 多浏览器兼容:插件兼容多种浏览器,包括 IE6、7、Firefox 等,确保插件在不同浏览器中的正确运行。 使用说明 1. 样式设置:插件提供了...

    Ruby-PaperClipActiveRecord的简单文件附件管理

    PaperClip是由Thoughtbot开发的一个Ruby库,它允许开发者将文件上传功能轻松地添加到ActiveRecord模型中。让我们深入探讨一下这个强大的工具及其工作原理。 首先,PaperClip的核心功能是将文件上传与数据库记录关联...

    ROR 文件的上传与下载

    `name`字段用于存储上传文件的名称,而`person`字段则是一个`MEDIUMBLOB`类型,用于保存上传文件的二进制流。 BLOB(Binary Large Object)是一种专门用于存储大量二进制数据的字段类型,适合用于图像、音频、视频...

    Ruby-Ruby绑定ImageMagick

    1. **读取和写入图像**:RMagick提供了一种简单的方式来打开和保存图像文件。例如,`Magick::Image.read('image.jpg')`可以读取一个JPEG图像,`image.write('new_image.png')`则可以将其另存为PNG格式。 2. **图像...

    RUBY FUJITSU 管理文件

    这是公司的管理手册,以及开发工具RUBY...上传上来,方便一点,但是最让我感觉失望的就是只能上传50M 的文件,我有几个很重要的安装软件,要搭建在自己笔记本上的,日本人的软件网上压根就下载不到。。。纠结。。。。

    ruby插件.rar

    对于文件操作,`paperclip` 和 `carrierwave` 是常见的文件上传插件,它们方便地处理图片和其他文件的上传和存储。另外,`active_storage` 是 Rails 5.2 引入的内置文件处理系统,与 AWS S3 或其他云存储服务集成,...

    使用uploadify上传文件

    此外,Uploadify还支持多种自定义设置,例如限制上传文件类型、大小、更改按钮文本等,这为我们提供了高度的灵活性来适应不同的项目需求。 总结来说,Uploadify是一个强大的jQuery文件上传插件,能够帮助开发者实现...

    plupload文件上传工具

    Plupload是一个功能强大的Web文件上传工具,专为处理大规模文件上传和优化用户体验而设计。它提供了多语言支持,包括JavaScript、Flash、Silverlight和HTML5等多个版本,确保在各种浏览器和设备上都能运行良好。...

Global site tag (gtag.js) - Google Analytics