我希望用户能够通过我的应用程序上传文件。我没有数据库访问权限,所有数据调用都通过另一个人正在编写的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而言,我几乎是一个菜鸟。多线程(我不知道为什么这需要处理异步?我确定有一个原因,但是现在我只是喜欢一个有效的例子并且为了之后的原因...)。
我的代码基于一些R&amp; D&amp;我在网上找到的样本,但我没有遇到过像我需要完成的情况......但是我似乎并没有做出与众不同的事情......
将文件上传到服务器,并将图像byte []对象传递给sql或其他服务?
在这一行
var result = this.Client.UploadPicture(this.UserId, o.Result);
我正在上传一个byte []数组....
然后(检索方法有效,我设法检索并查看测试图像)
当检索我上传的“图像”的字节数组时,我得到一个idk数组... EG,我得到了一些有效的结果,但它不是没有图片。这让我相信上传的数据是虚假的:|
O_O 如何获取图像字节[]?
答案 0 :(得分:2)
Mime Multipart不仅仅是你的字节数组。它还有元数据和边界内容。您需要将其视为MultiPartContent,然后从中提取图像字节数组。 菲利普有一篇关于这个主题的博客文章here。