J'ai un problème avec plusieurs fichiers téléchargés dans My Sails App. J'essaie de mettre en œuvre plusieurs téléchargements de fichier avec Dropzone.js et mon backend est Sails v0.10.0-RC8.
Maintenant, lorsque je télécharge des fichiers via Dropzone, je vois qu'en cas de téléchargement multiple, il envoie les fichiers avec des params distincts dans la demande. Les noms paramètres sont mais lorsqu'il y a plus d'un fichier soumis, la demande est transmise au contrôleur avant que tous les fichiers ne soient analysés et stockés de demande, donc je n'obtiens qu'un seul fichier dans mon contrôleur. P> Quelqu'un a-t-il vécu ce problème? Peut-être qu'il n'y a pas de support pour plusieurs paramètres de demande avec différents paramètres de demande dans l'analyseur de Skipper Corps? Parce que lorsque je soumettez plusieurs fichiers à l'intérieur d'un attribut (photo '), tous sont manipulés et transmis au contrôleur. P> p> 'Photo [0]' ',' Photo [1] '', 'Photo [2]', ... Code>. Je reçois les fichiers dans le contrôleur comme ceci: p>
3 Réponses :
Ceci devrait fonctionner, à condition que vous ayez une boucle via les noms de paramètres asynchrone, E.G.:
async.map(paramNames, function(file, cb) { req.file(file).upload(function (err, files) { // save the file, and then: return cb(err, files); }); }, function doneUploading(err, files) { // If any errors occurred, show server error if (err) {return res.serverError(err);} // Otherwise list files that were uploaded return res.json(files); });
p>i a été en mesure de tester cela avec succès. P> P>
Hmm ... j'ai fini par utiliser async.eachiesseries code> comme je fais quelques autres choses après chaque sauvegarde du fichier, et cela a fonctionné pour moi. Merci de rappeler ASYNC;)
Mais comment obtenir des paramètres de fichiers de req. ? (dans ci-dessus ex. PARAMNAMES)
Parfait!, Serviable
Cela semble fonctionner correctement pour moi: Fondamentalement, il n'envoie pas les fichiers ensemble, mais vous pouvez toujours laisser tomber plusieurs fichiers dans la Dropzone. L'arrière-plan est votre téléchargement standard à l'aide de Skipper. P> P>
avec Dropzone et Sails.js, vous devez: P>
dropzone.option.mydropzone = { PARAMNAME: "Nom de fichier" } p>
req.file ('nom de fichier'). Téléchargement (fonction (err, téléchargées) { p>
}); p>
UpploadedFiles contient le fichier p>
Ce code contient-il dans une boucle de quelque sorte? L'argument à
req.file code> est le paramètre que le fichier a été envoyé sous et, dans votre cas, les fichiers sont tous envoyés à l'aide de différents paramètres, il s'agit donc de raisonner que le
.upload code> n'entraînerait qu'un seul fichier étant renvoyé. En fait, je ne sais pas si plusieurs appels à
req.file code> fonctionneront même, mais ils permettent d'abord de savoir si vous essayez ou non.
Oui, il y a une boucle avec tous les noms de fichiers possibles que j'ai