在Sinatra中接受文件上传(无表单)可以通过以下步骤实现:
require 'sinatra'
require 'tempfile'
post '/upload' do
file = params[:file]
# 检查文件是否存在
if file.nil? || file[:tempfile].nil?
return '未找到上传的文件'
end
# 保存文件到服务器
tempfile = file[:tempfile]
filename = file[:filename]
target_path = "/path/to/save/#{filename}"
File.open(target_path, 'wb') do |f|
f.write(tempfile.read)
end
'文件上传成功'
end
run Sinatra::Application
现在,你的Sinatra应用程序已经可以接受文件上传了。当客户端发送一个POST请求到/upload
路由时,可以通过params[:file]
获取上传的文件对象。然后,你可以将文件保存到服务器上的指定路径。
这种方法适用于无需表单的文件上传场景,例如通过API或其他方式直接上传文件。如果需要在表单中上传文件,可以使用Sinatra的multipart/form-data
支持。
腾讯云相关产品和产品介绍链接地址:
请注意,以上链接仅供参考,具体产品选择应根据实际需求和情况进行评估。
领取专属 10元无门槛券
手把手带您无忧上云