C# 在不使用表单的情况下将图像上载到WebAPI

C# 在不使用表单的情况下将图像上载到WebAPI,c#,asp.net-web-api,C#,Asp.net Web Api,我在获取请求内容时遇到WebAPI问题。我正在使用.NET4解决方案,希望保存从客户端生成的映像 客户端代码是 var request = (HttpWebRequest)WebRequest.Create(Url); request.Method = WebRequestMethods.Http.Post; using (var stream = request.GetRequestStream()) { File.OpenRead(@"C:\Users\dylan_000\Picture

我在获取请求内容时遇到WebAPI问题。我正在使用.NET4解决方案,希望保存从客户端生成的映像

客户端代码是

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;
    });
}
公共任务映像()
{
return Request.Content.ReadAsStreamAsync().ContinueWith(t=>
{
使用(var writer=File.Create(“this was upload.png”))
{
(t.结果为流)。复制到(ms);
writer.Flush();
}
返回true;
});
}
流的大小不匹配,保存的图像无效

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


任何帮助都将不胜感激。

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

(t.结果作为流)。CopyTo(writer


为了绕过授权,我手动将cookies插入到请求中。看来我做这件事很笨拙,这就是问题的原因。对于任何想用WebAPI上传图像的人来说,上面的代码都可以。(请确保请求保持干净)

你说得对,ms是一个记忆流,我在工作中的复制和粘贴技能。