我正在尝试使用带Rails的Faraday发送一个文件数组。但是当我发送文件时,它们到达接收文件的服务时是空的。发送一个文件很好,但是使用数组就不行了。下面是一个例子:
def attachment
if @transaction.product_id == ViewTransaction::MINI
return [Faraday::FilePart.new(File.open(CreatePdfAction.new(@transaction,'tickets').execute),
'application/pdf',
File.basename("Ticket")),
Faraday::FilePart.new(File.open(CreatePdfAction.new(@transaction,'vouchers').execute),
'application/pdf',
File.basename("Voucher"))]
else
return Faraday::FilePart.new(File.open(File.open(CreatePdfAction.new(@transaction,'vouchers').execute),
'application/pdf',
File.basename(template))
end
def payload(payload = {})
payload[:attachment] = attachment
payload[:data] = data
payload
end这将执行http post
conn = Faraday.new() do |f|
f.request :multipart
f.adapter :net_http
end
response = conn.post("http://email-service/v1/email", payload)发布于 2020-07-21 05:39:51
我不推荐使用faraday上传文件!
我推荐使用paperclip包或此链接:https://guides.rubyonrails.org/active_storage_overview.html
https://stackoverflow.com/questions/63001672
复制相似问题