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

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

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

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

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

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

Пишу программу для отправки изображения на сервер, все работает, но только тогда когда параллельно включен Fiddler2, если он выключен ничего не работает. Помогите, посмотрите где ошибка.
Код:
private void download_image()
        {
            try
            {
                fileStream = new FileStream(openFileDialog1.FileName, FileMode.Open);
                SendPicture(fileStream);
                fileStream.Close();
            }
            catch { }
        }
        public void SendPicture(Stream stream)
        {
            byte[] data = new byte[stream.Length];
            stream.Read(data, 0, data.Length);
            SendPicture(data);
        }
        public void SendPicture(byte[] bytes)
        {
            try
            {
                string s1 = stat.Substring(33, 7);
                string s2 = stat.Substring(0, 40);
                const string boundary = "----------ei4ei4KM7ae0gL6GI3Ij5gL6ae0Ij5";
                const string boundary2 = "------------ei4ei4KM7ae0gL6GI3Ij5gL6ae0Ij5";
                string FName = Path.GetFileName(openFileDialog1.FileName);

                using (MemoryStream stream = new MemoryStream())
                {
                    StreamWriter writer = new StreamWriter(stream);
                    writer.WriteLine(boundary2);
                    writer.WriteLine("Content-Disposition: form-data; name=\"Filename\"");
                    writer.WriteLine();
                    writer.WriteLine(FName);
                    writer.WriteLine(boundary2);
                    writer.WriteLine("Content-Disposition: form-data; name=\"fileext\"");
                    writer.WriteLine();
                    writer.WriteLine("*.jpg;*.jpeg;*.png;*.gif");
                    writer.WriteLine(boundary2);
                    writer.WriteLine("Content-Disposition: form-data; name=\"folder\"");
                    writer.WriteLine();
                    writer.WriteLine(s1);
                    writer.WriteLine(boundary2);
                    writer.WriteLine("Content-Disposition: form-data; name=\"Filedata\"; filename=\"" + FName + "\"");
                    writer.WriteLine("Content-Type: application/octet-stream");
                    writer.WriteLine();
                    writer.Flush();
                    stream.Write(bytes, 0, bytes.Length);
                    writer.WriteLine();
                    writer.WriteLine(boundary2);
                    writer.WriteLine("Content-Disposition: form-data; name=\"Upload\"");
                    writer.WriteLine("Submit Query");
                    writer.WriteLine(boundary2);
                    writer.Flush();


                    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.ContentLength = stream.Length;                    



                    stream.WriteTo(webreq.GetRequestStream());

                    HttpWebResponse webresp = (HttpWebResponse)webreq.GetResponse();
                    StreamReader stre = new StreamReader(webresp.GetResponseStream(), Encoding.GetEncoding("UTF-8"));
                    webreq.CookieContainer.Add(webresp.Cookies);
                    next_cc = webreq.CookieContainer;
                    text = stre.ReadToEnd();
                }
            }
            catch { }

        }
После этой строчки программа встает

Код:
stream.WriteTo(webreq.GetRequestStream());
когда строчка имеет вид
Код:
webreq.GetRequestStream().Write(query, 0, query.Length);
все работает правильно, но я не могу поток переделать в массив байтов.
Может кто знает как перевеси поток в массив байтов.
Поделитесь идеями как решить эту проблему.
qwq вне форума Ответить с цитированием
Старый 20.07.2013, 20:57   #2
muradov
Пользователь
 
Регистрация: 05.05.2012
Сообщений: 39
По умолчанию

С похожей проблемой столкнулся. Какие-то неполадки с сетевыми адаптерами. Вы доступ к этому серверу не поверх VPN получили часом?
muradov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# отправка изображения POST запросом qwq C# (си шарп) 1 17.06.2013 13:21
Изображения сервер Anton PHP 5 02.06.2013 14:06
Отправка данных на сервер. iGlass Работа с сетью в Delphi 2 10.09.2009 17:17
Отправка формы на сервер max38934 HTML и CSS 1 10.07.2009 09:50
Отправка файла на сервер kirill555 PHP 8 21.12.2007 12:51