温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Ruby在Linux中处理文件上传下载

发布时间:2024-09-15 15:00:39 来源:亿速云 阅读:100 作者:小樊 栏目:建站服务器

在 Linux 系统中,Ruby 提供了多种方法来处理文件的上传和下载

  1. 文件上传:

要在 Ruby 中实现文件上传功能,你可以使用 CGI 或者 Sinatra 等 Web 框架。这里我们以 Sinatra 为例:

首先,确保已经安装了 Sinatra gem:

gem install sinatra

然后,创建一个名为 upload.rb 的文件,并添加以下代码:

require 'sinatra'

get '/' do
  <<-HTML
    <form action="/upload" method="post" enctype="multipart/form-data">
     <input type="file" name="file">
     <input type="submit" value="Upload">
    </form>
  HTML
end

post '/upload' do
  if params[:file] &&
     (tmpfile = params[:file][:tempfile]) &&
     (name = params[:file][:filename])
    File.open("uploads/#{name}", 'wb') do |f|
      f.write(tmpfile.read)
    end
    "File uploaded successfully!"
  else
    "No file selected."
  end
end

这个简单的 Sinatra 应用程序提供了一个表单,允许用户选择要上传的文件。当用户提交表单时,应用程序将接收到的文件保存到名为 “uploads” 的目录中。

要运行此应用程序,请在命令行中输入以下命令:

ruby upload.rb
  1. 文件下载:

要在 Ruby 中实现文件下载功能,你可以使用 Sinatra 框架。这里我们继续使用 Sinatra:

upload.rb 文件中添加以下代码:

get '/download/:filename' do
  filename = params[:filename]
  send_file "uploads/#{filename}", :filename => filename, :type => 'application/octet-stream'
end

这段代码定义了一个新的路由,允许用户通过访问 /download/:filename URL 下载指定的文件。:filename 参数将被替换为实际的文件名。

现在,你可以通过访问 /download/your_file_name 下载已上传的文件。

注意:在生产环境中,你需要添加适当的错误处理和安全措施,例如检查文件是否存在、验证用户身份等。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI