API Web ASP .Net RC: Téléchargement de fichiers en plusieurs parties dans Memorystream
Je suis en train d'enregistrer un fichier téléchargé(s) à une base de données/memorystream, mais je ne peux pas le comprendre.
Tout ce que j'ai pour l'instant:
public Task<HttpResponseMessage> AnswerQuestion()
{
if (!Request.Content.IsMimeMultipartContent())
{
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
var root = HttpContext.Current.Server.MapPath("~/App_Data");
var provider = new MultipartFormDataStreamProvider(root);
var task = Request.Content.ReadAsMultipartAsync(provider).
ContinueWith<HttpResponseMessage>(t =>
{
if (t.IsFaulted || t.IsCanceled)
{
Request.CreateErrorResponse(HttpStatusCode.InternalServerError, t.Exception);
}
foreach (var file in provider.FileData)
{
Trace.WriteLine(file.Headers.ContentDisposition.FileName);
Trace.WriteLine("Server file path: " + file.LocalFileName);
}
return Request.CreateResponse(HttpStatusCode.OK);
});
return task;
}
Mais bien sûr cela ne permet d'enregistrer le fichier à un emplacement spécifique. Je pense que j'ai de travailler avec une classe dérivée de MediaTypeFormatter pour l'enregistrer dans un MemoryStream, mais je ne vois pas comment le faire.
S'il vous plaît aider. Merci à l'avance!
source d'informationauteur jurgen_be
Vous devez vous connecter pour publier un commentaire.
Multipart le contenu peut être lu dans un de la des implémentations concrètes de l'abstrait
MultipartStreamProvider
classe - voir http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/8fda60945d49#src%2fSystem.Net.Http.Formatting%2fMultipartStreamProvider.cs.Ce sont:
Dans votre cas:
Vous pouvez utiliser MultipartMemoryStreamProvider pour votre scénario.
[Mis à jour] Remarqué que vous utilisez RC, je pense que MultipartMemoryStreamProvider a été ajouté en post-RC et est actuellement en version RTM.