Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передача файла с параметрами методом POST, все одним запросом 
:(
    Опции темы
localhost
Дата 23.1.2008, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хирург-длятехкт
**


Профиль
Группа: Участник
Сообщений: 712
Регистрация: 8.11.2005
Где: Н.Новгород

Репутация: нет
Всего: 43



Для передачи файлов и параметров на удаленный сервер есть два метода: UploadFile и UploadValues. Нужно передать скрипту на сервере файл с некоторыми параметрами, причем впихнуть это все в один POST-запрос.
PM MAIL   Вверх
Experimenter
Дата 23.1.2008, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 8.5.2007
Где: Уфа

Репутация: 1
Всего: 17



Здесь есть кой-какие разъяснения


--------------------
public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){
    if(zlo1 < zlo2) return zlo1;
    else if(zlo1 > zlo2) return zlo2;
    else throw new Exception("Kill yourself by the wall"); }
PM WWW ICQ   Вверх
localhost
Дата 23.1.2008, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хирург-длятехкт
**


Профиль
Группа: Участник
Сообщений: 712
Регистрация: 8.11.2005
Где: Н.Новгород

Репутация: нет
Всего: 43



Experimenter, спасибо, конечно, но мне нужны методы, чтобы можно было собирать тело POST'а в виде массива или колекции, чтобы потом делать из него stream, который можно отправить.
PM MAIL   Вверх
Experimenter
Дата 23.1.2008, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 430
Регистрация: 8.5.2007
Где: Уфа

Репутация: 1
Всего: 17



localhost, тогда посмотри в сторону System.Net.Mime, классы ContentDisposition и ContentType


--------------------
public Zlo FromTwoEvilsChooseSmaller(Zlo zlo1, Zlo zlo2){
    if(zlo1 < zlo2) return zlo1;
    else if(zlo1 > zlo2) return zlo2;
    else throw new Exception("Kill yourself by the wall"); }
PM WWW ICQ   Вверх
localhost
Дата 24.1.2008, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хирург-длятехкт
**


Профиль
Группа: Участник
Сообщений: 712
Регистрация: 8.11.2005
Где: Н.Новгород

Репутация: нет
Всего: 43



Нашел решение:
Код

String^ sMultiPartBoundary = "1BEF0A57BE110FD467A";

String^ sPostFirstPart = "--" + sMultiPartBoundary + "\r\n" + "Content-Disposition: form-data; name=\"hash\"" "\r\n\r\n" + sHash + "\r\n"+ "--" + sMultiPartBoundary + "\r\n" + "Content-Disposition: form-data; name=\"size\"" + "\r\n\r\n" + sSize + "\r\n" + "--" + sMultiPartBoundary + "\r\n" + "Content-Disposition: form-data; name=\"rotate\"" + "\r\n\r\n" + sRotate + "\r\n" + "--" + sMultiPartBoundary + "\r\n" + "Content-Disposition: form-data; name=\"quality\"" + "\r\n\r\n" + sQuality + "\r\n" + "--" + sMultiPartBoundary + "\r\n" + "Content-Disposition: form-data; name=\"image_file\"; filename=\"abcdefgh.jpg\"" + "\r\n" + "Content-Type: image/jpeg" + "\r\n\r\n";

String^ sPostLastPart = "\r\n" + "--" + sMultiPartBoundary + "--" + "\r\n\r\n";
             
array <unsigned char,1>^ request = File::ReadAllBytes(textBox1->Text);
HttpWebRequest^ webReq = (HttpWebRequest^)WebRequest::Create("http://URI/upload.php");

webReq->Method = "POST";
webReq->ContentType = "multipart/form-data";

objStream = webReq->GetRequestStream();
objStream->Write(Encoding::GetEncoding(1252)->GetBytes(sPostFirstPart), 0, sPostFirstPart->Length);
objStream->Write(request, 0, request->Length);
objStream->Write(Encoding::GetEncoding(1252)->GetBytes(sPostLastPart), 0, sPostLastPart->Length);

objStream->Close();

PM MAIL   Вверх
localhost
Дата 24.1.2008, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хирург-длятехкт
**


Профиль
Группа: Участник
Сообщений: 712
Регистрация: 8.11.2005
Где: Н.Новгород

Репутация: нет
Всего: 43



Нашел решение:
Код

String^ sMultiPartBoundary = "1BEF0A57BE110FD467A";

String^ sPostFirstPart = "--" + sMultiPartBoundary + "\r\n" + "Content-Disposition: form-data; name=\"hash\"" "\r\n\r\n" + sHash + "\r\n"+ "--" + sMultiPartBoundary + "\r\n" + "Content-Disposition: form-data; name=\"size\"" + "\r\n\r\n" + sSize + "\r\n" + "--" + sMultiPartBoundary + "\r\n" + "Content-Disposition: form-data; name=\"rotate\"" + "\r\n\r\n" + sRotate + "\r\n" + "--" + sMultiPartBoundary + "\r\n" + "Content-Disposition: form-data; name=\"quality\"" + "\r\n\r\n" + sQuality + "\r\n" + "--" + sMultiPartBoundary + "\r\n" + "Content-Disposition: form-data; name=\"image_file\"; filename=\"abcdefgh.jpg\"" + "\r\n" + "Content-Type: image/jpeg" + "\r\n\r\n";

String^ sPostLastPart = "\r\n" + "--" + sMultiPartBoundary + "--" + "\r\n\r\n";
             
array <unsigned char,1>^ request = File::ReadAllBytes(textBox1->Text);
HttpWebRequest^ webReq = (HttpWebRequest^)WebRequest::Create("http://URI/upload.php");

webReq->Method = "POST";
webReq->ContentType = "multipart/form-data";

objStream = webReq->GetRequestStream();
objStream->Write(Encoding::GetEncoding(1252)->GetBytes(sPostFirstPart), 0, sPostFirstPart->Length);
objStream->Write(request, 0, request->Length);
objStream->Write(Encoding::GetEncoding(1252)->GetBytes(sPostLastPart), 0, sPostLastPart->Length);

objStream->Close();

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.