Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用POST发送图像_C#_Image_Post - Fatal编程技术网

C# 使用POST发送图像

C# 使用POST发送图像,c#,image,post,C#,Image,Post,我有一个WPF应用程序和一个ASP.NETMVC站点。WPF应用程序使用Kinect捕获图像,这些图像保存为文件。我要做的是将文件从WPF应用程序发送到ASP.NETMVC站点 我尝试了以下方法,从图像文件中获取字节,并使用Base64将其转换为字符串,然后在另一端尝试将字符串转换回字节,然后再转换回文件。整个过程正常,但最后的文件已损坏且无法加载 这也是发送文件的正确方式,还是尝试使用套接字更好 WPF应用程序 var imageUrl = "http://127.0.0.1:18710/Ho

我有一个WPF应用程序和一个ASP.NETMVC站点。WPF应用程序使用Kinect捕获图像,这些图像保存为文件。我要做的是将文件从WPF应用程序发送到ASP.NETMVC站点

我尝试了以下方法,从图像文件中获取字节,并使用Base64将其转换为字符串,然后在另一端尝试将字符串转换回字节,然后再转换回文件。整个过程正常,但最后的文件已损坏且无法加载

这也是发送文件的正确方式,还是尝试使用套接字更好

WPF应用程序

var imageUrl = "http://127.0.0.1:18710/Home/Index";

//byte[] imageBytes = set.getImageBytes();
byte[] imb = System.Text.Encoding.UTF8.GetBytes("imagename=" + ImageName + ".png&image=" + Convert.ToBase64String(File.ReadAllBytes(ImageName + ".png")));

var imageReq = (HttpWebRequest)WebRequest.Create(imageUrl);

imageReq.Method = "POST";
imageReq.ContentType = "application/x-www-form-urlencoded";
imageReq.ContentLength = imb.Length;


using (Stream os = imageReq.GetRequestStream())
{
    os.Write(imb, 0, imb.Length);
}
ASP.NET MVC站点

if (image != null && imagename != null)
{
    System.IO.File.WriteAllBytes(@"c:\" + imagename, Convert.FromBase64String(image));
}

你正在用编码做一些奇怪的事情。如果将文件名作为头传入,可能会更好。。您可以在MVC端提取文件名。。通过使用HttpContext.Current.Request。然后,只需将您在wpf应用程序中编写的RequestStream更改为:


byte[]imb=File.ReadAllBytes(ImageName+“.png”)

如何在MVC端重新组装文件?当我查看Request.Form时,它有1037个不同的键。将您的内容类型更改为“image/png”。或应用程序/八位字节流,并将参数传入索引页。。“Stream myimagestream”,从那里您应该能够保存流,无论您想保存到哪里。流。。只是一团“东西”。你不应该害怕他们-微笑-一旦你意识到。。而且大多数文件类型都可以由流的前256个字节唯一识别。。你会是一个更快乐的人。(Zip文件是256字节规则的例外..因为很多文件实际上是Zip文件..现代powerpoint文件..jar文件..现代excel文件..)仍然在Request.Form中返回相同的内容。您不需要Request.Form。如果您修改了“Index”Post方法以获取流myimagestream的参数,如下所示。。。索引(Stream myimagestream)您只需使用变量即可。