上传图像到WebAPI而不使用表单

本文关键字:表单 WebAPI 图像 | 更新日期: 2023-09-27 18:16:33

我在获取请求内容时遇到了WebAPI的麻烦。我正在使用。net 4解决方案,并希望保存来自客户端的图像。

客户端代码

var request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = WebRequestMethods.Http.Post;
using (var stream = request.GetRequestStream())
{
  File.OpenRead(@"C:'Users'dylan_000'Pictures'image.png").CopyTo(stream);
  stream.Flush();
}
var response = request.GetResponse();

WebApi方法如下所示

public Task<bool> Image()
{
  return Request.Content.ReadAsStreamAsync().ContinueWith<bool>(t =>
    {
        using (var writer = File.Create("this was uploaded.png"))
                        {
                            (t.Result as Stream).CopyTo(ms);
                            writer.Flush();
                        }
        return true;
    });
}

流的大小不匹配,保存的图像无效。

上面粘贴的代码足以复制我的情况,显然有更好的方法来保存图像,但在我的情况下,它会被进一步处理。

上传图像到WebAPI而不使用表单

我无法重现您的问题。顺便说一句,在尝试之前,我修改了以下突出显示的代码。这里的"ms"是什么?听起来像记忆流?

(t。结果流).CopyTo (作家);

我学到了教训,为了绕过授权,我手动将cookie插入请求。看来我做这件事很笨,这就是问题的原因。对于任何想要用WebAPI上传图像的人来说,上面的代码都可以正常工作。(一定要保持请求的简洁)