У меня есть приложение WPF и сайт ASP.NET MVC. Приложение WPF использует Kinect для захвата изображений, и они сохраняются в виде файлов. Я хочу отправить файлы из приложения WPF на сайт ASP.NET MVC.Отправить изображение с помощью POST
Я пробовал следующее, которое получает байты из файла изображения и преобразует его в строку с использованием Base64, а затем с другой стороны попытается преобразовать строку обратно в байты, а затем обратно в файл. Весь процесс работает, за исключением того, что файлы в конце повреждены и не будут загружаться.
Также является правильным способом отправки файлов, или мне будет лучше использовать сокеты?
WPF Application
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? Когда я смотрю на Request.Form, у него есть 1037 разных ключей. – PriestVallon
Измените свой Content-Type на "image/png". Или приложение/октет-поток и введите параметр, входящий на вашу индексную страницу. «Поток myimagestream», оттуда вы сможете сохранить поток, где хотите. –
Поток .. это просто капля «вещи». Вы не должны их бояться .. -smiles- Как только вы это осознаете ... и что большинство типов файлов могут быть однозначно распознаны первыми 256 байтами потока .. вы станете счастливее. (Zip-файлы являются исключением из 256-байтового правила .. потому что много файлов - это действительно файлы zip .. современные файлы Powerpoint .. файлы jar .. современные файлы excel ..) –