0

我希望用户能够通过我的应用程序上传文件。我没有数据库访问权限,我所有的数据调用都是通过另一个人正在编写的网络服务完成的。我需要保护 Web 服务,所以我已经使用它并通过 WebAPI 公开它,并添加了 OAuth 安全性。

现在到我的问题。

我写了以下内容。

        public Task<FileResult> Post()
        {
             if (Request.Content.IsMimeMultipartContent())
             {     
                  var task = Request.Content.ReadAsByteArrayAsync().ContinueWith(
                         o =>
                        {
                            var result = this.Client.UploadPicture(this.UserId, o.Result);

                            if (result.ResultCode == 0)
                            {
                                return new FileResult()
                                {
                                    Message = "Success",
                                    FileId = result.ServerId
                                };
                            }

                       throw new HttpResponseException(...);
                  });

              return task;
             }
        ...
       }

在 WebAPI 和多线程方面,我几乎是个菜鸟(我不确定为什么需要异步处理?我敢肯定这是有原因的,但现在我只想要一个工作示例并得到到后来为什么..)。

我的代码大致基于我在网上找到的一些研发和示例,但我还没有遇到像我需要完成的场景......但似乎我没有做某事普通的...

将文件上传到服务器,并将图像 byte[] 对象传递给 sql 或其他服务?

在这一行

    var result = this.Client.UploadPicture(this.UserId, o.Result);

我正在上传一个 byte[] 数组的东西....

然后稍后(检索方法有效,我设法检索并查看测试图像)

当检索我上传的“图像”的字节数组时,我得到了一个 idk 数组。例如,我得到了一个有效的结果,但它不是没有图片。这让我相信上传的数据是假的:|

O_o 如何获取图像字节[]?

4

1 回答 1

2

Mime Multipart不仅仅是您的字节数组。它也有元数据和边界的东西。您需要将其视为 MultiPartContent,然后从中提取图像字节数组。Filip 在这里有一篇关于这个主题的博文。

于 2013-08-31T21:08:26.400 回答