您好,登錄后才能下訂單哦!
在 Linux 系統中,Ruby 提供了多種方法來處理文件的上傳和下載
要在 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
要在 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
下載已上傳的文件。
注意:在生產環境中,你需要添加適當的錯誤處理和安全措施,例如檢查文件是否存在、驗證用戶身份等。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。