HttpClient: Comment télécharger plusieurs fichiers à la fois
Je suis en train de télécharger de multiples fichiers à l'aide de Système.Net.Http.HttpClient.
using (var content = new MultipartFormDataContent())
{
content.Add(new StreamContent(imageStream), "image", "image.jpg");
content.Add(new StreamContent(signatureStream), "signature", "image.jpg.sig");
var response = await httpClient.PostAsync(_profileImageUploadUri, content);
response.EnsureSuccessStatusCode();
}
ce n'envoie mulipart/form-data, mais je m'attendais à multipart/mixed quelque part dans le post.
Mise à JOUR: Ok, j'ai eu autour de.
using (var content = new MultipartFormDataContent())
{
var mixed = new MultipartContent("mixed")
{
CreateFileContent(imageStream, "image.jpg", "image/jpeg"),
CreateFileContent(signatureStream, "image.jpg.sig", "application/octet-stream")
};
content.Add(mixed, "files");
var response = await httpClient.PostAsync(_profileImageUploadUri, content);
response.EnsureSuccessStatusCode();
}
private StreamContent CreateFileContent(Stream stream, string fileName, string contentType)
{
var fileContent = new StreamContent(stream);
fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("file") {FileName = fileName};
fileContent.Headers.ContentType = new MediaTypeHeaderValue(contentType);
return fileContent;
}
Cela semble correct sur le fil de requin. mais je ne vois pas les fichiers dans mon contrôleur.
[HttpPost]
public ActionResult UploadProfileImage(IEnumerable<HttpPostedFileBase> postedFiles)
{
if(postedFiles == null)
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
//more code here
}
postedFiles
est toujours null. Des idées?
- Malheureusement, j'ai de courir dans ce trop: stackoverflow.com/questions/15638622/...
Vous devez vous connecter pour publier un commentaire.
Cloué. Mais le comportement est étrange.
UploadProfileImage
ai-je ajouté. vous devez ajouter plus de code...[]
à laName = "\"files\"''
=>Name = "\"files[]\"''
, je suis bloqué avec ce problème pendant des heures juste eu à résoudre.