我正在通过JSON将我的应用程序中的图像文件上传到由Heroku托管的ruby后端。然后它应该通过他们的宝石通过我上传的图像的路径传递给条纹。是否可以将它传递给临时文件?条纹文档说:
Stripe::FileUpload.create(
:purpose => 'dispute_evidence',
:file => File.new('/path/to/a/file.jpg')
)
我的后端帖子看起来像:
post '/account/id' do
tempfile = params[:file][:tempfile]
filename = params[:file][:filename]
path = "#{tempfile.path}/#{filename}"
p path --> "/tmp/RackMultipart20170112-4-fgtv2n/photoID.jpg"
begin
file = Stripe::FileUpload.create({
:purpose => params[:purpose],
:file => File.new(path)
},
{
:stripe_account => params[:stripe_account]
}
)
rescue Stripe::StripeError => e
status 402
return "Error saving verification id to account: #{e.message}"
end
status 200
return file.to_json
end
但在跑步时我得到:
Errno::ENOENT - No such file or directory @ rb_sysopen - /tmp/RackMultipart20170112-4-1qmr03y/photoID.jpg:
我无法弄清楚我做错了什么。任何人都可以帮助或提出更好的选择吗?
答案 0 :(得分:0)
您误将tempfile
误认为是某个目录。 tempfile
实际上是您的临时文件,因此请将其传递给path
(您不再需要)。