Donc j'utilise Multi-part gem pour télécharger des données de formulaire en plusieurs parties. Et j'ai des tableaux, y compris les chemins de fichiers, les noms de fichiers et les types de fichiers.Puis-je utiliser la boucle pour télécharger plusieurs fichiers via multipart :: post gem
Depuis que je veux télécharger plusieurs fichiers, j'utilise .each
à boucle à travers ces tableaux et essayer de construire certaines commandes comme
"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')
Et voici mon essai:
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)
et il sera donnez-moi l'erreur msg:
erreur de syntaxe, inattendu tASSOC, attendez keyword_end
fileorder => UploadIO.new (File.new (valeur) ...erreur de syntaxe, inattendue '', attente keyword_end ... etype [value], nom de fichier [value]),
erreur de syntaxe, tASSOC inattendue, attendant keyword_end
LastFile => UploadIO.new (File.new (valeur) ...
Merci , en utilisant Hash a fait le travail. Merci beaucoup. – lilixiaocc