Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.224.44.108] |
|
Сообщ.
#1
,
|
|
|
Всем привет! Задача: отправить файл на сервер методом POST с некоторыми параметрами. С передачей самого файла и параметров по отдельности вопросов нет - есть класс WebClient и методы UploadFile и UploadValues. Но как единым POST-запросом передать и файл и параметры?
|
Сообщ.
#2
,
|
|
|
Смотри на класс HttpWebRequest
|
Сообщ.
#3
,
|
|
|
А на чём сайт написан? АСП.НЕТ? Зачем же париться с ПОСТ? обрабатывай OnClick кнопки "Отправить"...
|
Сообщ.
#4
,
|
|
|
Budda Не... Запросы принимает PHP-скрипт. Сначала я запрашиваю у него случайный хеш методом GET, после чего должен вернуть файл с этим хешем и другими параметрыми в POST-запросе. То есть насколько я понял, надо использовать HttpWebRequest для формирования запроса, открывать поток и писать в него файл и другие параметры...
|
Сообщ.
#5
,
|
|
|
BillGates
Цитата BillGates @ Запросы принимает PHP-скрипт. а какого Х тогда писатьв раздел ".НЕТ"? Я с уверенностью сказать не могу, но процентов 80 вероятности того, что никаких заморочек. И потоков открывать не нужно. Есть методика загрузки файла на сервер... и при этом можно передать нужные параметры |
Сообщ.
#6
,
|
|
|
Цитата Budda @ а какого Х тогда писатьв раздел ".НЕТ"? Budda, клиентское приложение на VС++ .NET. Какая разница, кто принимает? Мне важно сформировать этот долбанный запрос Если не трудно ткни носом в Цитата Budda @ методика загрузки файла на сервер... и при этом можно передать нужные параметры |
Сообщ.
#7
,
|
|
|
Примерно так
string content = File.ReadAllText(@"c:\example.txt"); // в content можешь дописать и параметры byte[] bContent = Encoding.UTF8.GetBytes(content); HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://examplepage"); request.Method = "POST"; request.ContentLength = bContent.Length; request.Headers.Add(HttpRequestHeader.AcceptCharset, "utf-8"); Stream reqStream = request.GetRequestStream(); reqStream.Write(bContent, 0, bContent.Length); reqStream.Close(); |
Сообщ.
#8
,
|
|
|
Цитата BillGates @ Budda, клиентское приложение на VС++ .NET. Какая разница, кто принимает? дело в том, что изначально в постановке вопроса надо было сказать, что клиент - программа на .НЕТ (кстати, что заставляет тебя писать под .НЕТ на С++ ?), а сервер - пхп-скрипт. Тогда у тебя типичное клиент-серверное приложение. Я же думал, что обычный сайт. |
Сообщ.
#9
,
|
|
|
Цитата Budda @ дело в том, что изначально в постановке вопроса надо было сказать, что клиент - программа на .НЕТ, а сервер - пхп-скрипт. Извиняюсь, действительно - упущение. Цитата Budda @ (кстати, что заставляет тебя писать под .НЕТ на С++ ?) сие воля преподавателя, питающего страстную любовь к С++ ... Поэтому приходится извращаться. |
Сообщ.
#10
,
|
|
|
BillGatesА он совмещает любовь к С++ и .НЕТ? или же .НЕТ не уважает? Не будет ли проблем в связи с тем, что твой С++ работает под .НЕТ? Ведь препод может любить не только С++, а ещё и WinAPI, нативные сокеты...
|
Сообщ.
#11
,
|
|
|
Budda я конечно ценю английский юмор, но в данный момент мне не хочется изучать морально-этические аспекты любострастия преподавателя. Учитывая то, что опыта в программировании на .НЕТ и вообще программистского опыта мало, мне бы хотелось услышать (в смысле "прочитать") рекомендации к действию, согласно религии С++
|
Сообщ.
#12
,
|
|
|
Извини, не хотел обидеть Я просто не знаю ответ на твой вопрос. Пробуй то, что предложил GarF1eld.
Но хочу предупредить вот о чём: если препод любит С++, то возможно ему не понравится то, что ты напишешь на С++.НЕТ.... понимаешь? я бы спросил препода, устроит ли его такой (твой) вариант. |
Сообщ.
#13
,
|
|
|
Budda да я не обижаюсь вовсе
GarF1eld, я правильно понимаю, что если файл не текстовый, следует использовать ReadAllBytes? |
Сообщ.
#14
,
|
|
|
Цитата BillGates @ GarF1eld, я правильно понимаю, что если файл не текстовый, следует использовать ReadAllBytes? Именно. Честно говоря, мне не приходилось отсылать файл и еще что-то через post. только XML Но принцип один и тот же |