Multi-part gemを使用して複数部分のフォームデータをアップロードしています。 ファイルパス、ファイル名、ファイルタイプなどの配列があります。multipart :: post gem経由で複数のファイルをループでアップロードすることはできますか
私は複数のファイルをアップロードしたいので、私はそれらの配列をループに.each
を使用して、ここで
"file1" => UploadIO.new(File.new('/tmp/1.jpg'), 'image/jpeg', '1.jpg'),
"file2" => UploadIO.new(File.new('/tmp/2.jpg'), 'image/jpeg', '2.jpg'),
"file3" => UploadIO.new(File.new('/tmp/3.jpg'), 'image/jpeg', '3.jpg')
など、いくつかのコマンドを構築しようとするが、私の試みです:
filepath = ['/tmp/1.jpg','/tmp/2.jpg','/tmp/3.jpg']
filetype = ['image/jpeg','image/jpeg','image/jpeg']
filename = ['1.jpg','2.jpg','3.jpg']
require 'net/http/post/multipart'
url = URI.parse("https://example.com/api/send")
req = Net::HTTP::Put::Multipart.new url.path,
filepath.each_with_index do |(key, value),index|
fileorder = "file" + (key+1).to_s
lastfile = "file"+ (filepath.size).to_s
fileorder => UploadIO.new(File.new(value), filetype[value], filename[value]),
if index == filepath.size - 1
lastfile => UploadIO.new(File.new(value), filetype[value], filename[value])
end
end
req.basic_auth("username", "password")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = (url.scheme == "https")
res = http.request(req)
そして、それは意志エラーメッセージを出す:
構文エラー、予期しないtASSOC、予期しているキーワード_end
fileorder => UploadIO.new(File.new(値)...構文エラー、予期しない ''、keyword_end 期待... ETYPE [値]、ファイル名[値])、
keyword_end期待構文エラー、予期しないtASSOC、
lastfile => UploadIO.new(File.new(値)...
感謝ハッシュを使って作業をしました。どうもありがとうございました。 – lilixiaocc