【问题标题】:How do I get the file contents of a MultipartMemoryStreamProvider as a byte array?如何将 MultipartMemoryStreamProvider 的文件内容作为字节数组获取?
【发布时间】:2013-10-31 15:38:12
【问题描述】:

我创建了一个使用 FormData 将文件上传到 Web API 控制器的组件。

如何从 MultipartMemoryStreamProvider 获取文件内容作为字节数组?

这里是 Web Api 方法

   public Task<IEnumerable<FileModel>> Post()
   {             
     if (Request.Content.IsMimeMultipartContent())
        {            
            var streamProvider = new MultipartMemoryStreamProvider();
            var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith<IEnumerable<FileModel>>(t =>
            {

                if (t.IsFaulted || t.IsCanceled)
                {
                    throw new HttpResponseException(HttpStatusCode.InternalServerError);
                }

                FileDataBO filedata;
                var fileInfo = streamProvider.Contents.Select(i => {
                    //save to db
                    filedata = new FileDataBO ();
                    filedata.FileName = i.Headers.ContentDisposition.FileName;
                    filedata.FileType = "jpeg";

                    // HOW TO GET FILE CONTENT HERE??? IT SHOULD BYTE[]
                    //filedata.FileContent = ???

                    //TODO
                    //_fileDataService.SaveFile(filedata);    

                    return new FileModel(i.Headers.ContentDisposition.FileName, 2048);
                });
                return fileInfo;
            });

            return task;
        }             
        else
        {
            throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotAcceptable, "This request is not properly formatted"));
        }       
   }

【问题讨论】:

    标签: c# .net file-upload asp.net-web-api


    【解决方案1】:

    你应该可以通过i.ReadAsByteArrayAsync()获取内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      相关资源
      最近更新 更多