【发布时间】:2021-01-18 21:36:16
【问题描述】:
我正在尝试使用邮递员模拟下载文件
响应
127.0.0.1 - - [18/Jan/2021:03:54:47 -0800] "POST / HTTP/1.1" 404 - 4.4450
命令
send_file "#{filename}", :disposition=> "attachment", :filename => filename, :type => 'application/octet-stream'
post '/' do
fileSize = env['CONTENT_LENGTH'].to_i/1048576.0 # Converting to MB
if params.has_key?(:file) && fileSize <= 1
filename = params['file']["filename"]
send_file "#{filename}", :disposition=> "attachment", :filename => filename, :type => 'application/octet-stream'
puts ".......................FILE STORED........................."
else
puts "....................FILE NOT VALID........................."
end
end
【问题讨论】:
-
可能是找不到文件。我会注销文件名 var 以检查查询参数中的设置是否正确。如果做不到这一点,我建议暂时忘记下载文件,看看您是否可以发布到该端点并获得 200 响应。这将确保下载文件而不是路由请求时出现问题。
-
我可以得到以下文件信息
>{"filename"=>"diet.txt", "type"=>"text/plain", "name"=>"file", "tempfile"=>#<Tempfile:/tmp/RackMultipart20210118-28539-1tmxeoh.txt>, "head"=>"Content-Disposition: form-data; name=\"file\"; filename=\"diet.txt\"\r\nContent-Type: text/plain\r\n"} -
文件确实存在?文件的路径是什么?
-
是文件存在,路径是/home/mayuresh/Downloads/diet.txt
-
你是如何运行rails的?是否在 fake_root 中(例如通过 Apache)?