Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2013, 13:21   #1
qwq
Пользователь
 
Регистрация: 05.11.2009
Сообщений: 96
По умолчанию C# отправка изображения POST запросом

Здравствуйте, пытаюсь отправить на сайт изображение но сталкиваюсь с проблемой.
Вот мой код
Код:
            string s1 = stat.Substring(33, 7); //номер статьи
            string s2 = stat.Substring(0, 40);// ссылка без номера статьи

            openFileDialog1.ShowDialog();
            BinaryReader rdr = new BinaryReader(File.OpenRead(openFileDialog1.FileName));
            byte[] data = rdr.ReadBytes((int)rdr.BaseStream.Length);
            string FName = Path.GetFileName(openFileDialog1.FileName);

            string boundary = "----------ei4ei4KM7ae0gL6GI3Ij5gL6ae0Ij5";
            string boundary2 = "------------ei4ei4KM7ae0gL6GI3Ij5gL6ae0Ij5";
            HttpWebRequest webreq = (HttpWebRequest)HttpWebRequest.Create("http://uh.ru/ajax.php?file=uploadify");
            webreq.ContentType = "multipart/form-data; boundary=" + boundary;
            webreq.Method = "POST";
            webreq.AllowAutoRedirect = true;
            webreq.CookieContainer = new CookieContainer();
            webreq.CookieContainer = next_cc; 
            webreq.Referer = s2;
            webreq.Headers.Add("Origin", "http://uh.ru");
            webreq.ServicePoint.Expect100Continue = false;

            string postData = boundary2 + "\r\nContent-Disposition: form-data; name=\"Filename\"\r\n\r\n";
            postData += FName + "\r\n";
              
            postData += boundary2 + "\r\nContent-Disposition: form-data; name=\"fileext\"\r\n\r\n";
            postData += "*.jpg;*.jpeg;*.png;*.gif\r\n";
              
            postData += boundary2 + "\r\nContent-Disposition: form-data; name=\"folder\"\r\n\r\n";
            postData += s1 + "\r\n";
              
            postData += boundary2 + "\r\nContent-Disposition: form-data; name=\"Filedata\"; filename=" + "\"" + FName + "\"";
            postData += "\r\nContent-Type: application/octet-stream\r\n\r\n";            


            /*string postDat = boundary2 + "\r\nContent-Disposition: form-data; name=\"Upload\"\r\n\r\n";
            postDat += "Submit Query";
            postDat += boundary2 + "--";*/

            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
           // byte[] byteArra = Encoding.UTF8.GetBytes(postDat);

            webreq.ContentLength = byteArray.Length + data.Length /*+ byteArra.Length*/;
            webreq.GetRequestStream().Write(byteArray, 0, byteArray.Length);
            //webreq.GetRequestStream().Write(byteArra, 0, byteArra.Length);
            webreq.GetRequestStream().Write(data, 0, data.Length);
            HttpWebResponse webresp = (HttpWebResponse)webreq.GetResponse();
            StreamReader stream = new StreamReader(webresp.GetResponseStream(), Encoding.GetEncoding("UTF-8"));
            webreq.CookieContainer.Add(webresp.Cookies);
            next_cc = webreq.CookieContainer;
            text = stream.ReadToEnd();
Мониторю сеть через Fiddler Web Debugger.
Вот что он отлавливает если изображение загружаю через браузер




а вот что получается у меня




тут пока разницы нет, за исключением ответа от сервера, но дальше я не могу понять в чем дело
через браузер


а это у меня


в каком месте и как нужно на сервер отправить вот эти данные
Код:
------------ei4ei4KM7ae0gL6GI3Ij5gL6ae0Ij5
Content-Disposition: form-data; name="Upload"

Submit Query
------------ei4ei4KM7ae0gL6GI3Ij5gL6ae0Ij5--
qwq вне форума Ответить с цитированием
Старый 17.06.2013, 13:21   #2
qwq
Пользователь
 
Регистрация: 05.11.2009
Сообщений: 96
По умолчанию

Одним сообщением не поместилось

я думаю загвоздка в этом, но не знаю как отправить. Когда это прописываю в postData, то получается что на сервер сначала идет
Код:
------------ei4ei4KM7ae0gL6GI3Ij5gL6ae0Ij5
Content-Disposition: form-data; name="Filename"

5.jpg
------------ei4ei4KM7ae0gL6GI3Ij5gL6ae0Ij5
Content-Disposition: form-data; name="fileext"

*.jpg;*.jpeg;*.png;*.gif
------------ei4ei4KM7ae0gL6GI3Ij5gL6ae0Ij5
Content-Disposition: form-data; name="folder"

/874655
------------ei4ei4KM7ae0gL6GI3Ij5gL6ae0Ij5
Content-Disposition: form-data; name="Filedata"; filename="5.jpg"
Content-Type: application/octet-stream

------------ei4ei4KM7ae0gL6GI3Ij5gL6ae0Ij5
Content-Disposition: form-data; name="Upload"

Submit Query
------------ei4ei4KM7ae0gL6GI3Ij5gL6ae0Ij5--
а только потом само изображение, а нужно чтоб изображение было до
строчки Content-Disposition: form-data; name="Upload"
Помогите, может кто то уже делал такое, ге у меня ошибка?
qwq вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка файла POST запросом darkblood0202 C++ Builder 2 28.04.2012 13:34
Отправка файла на HTTP сервер POST запросом на WinSock Vladimirok Работа с сетью в Delphi 2 14.04.2012 06:26
Проблема с Post запросом DKENT Работа с сетью в Delphi 1 16.02.2011 16:34
Проблема с post запросом! DKENT Работа с сетью в Delphi 1 12.10.2010 17:28
Отправка файла POST-запросом на PHP-скрипт... ActiveX Работа с сетью в Delphi 7 20.07.2009 16:54