На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
> Передача файла методом POST с параметрами , одним запросом
    Всем привет! Задача: отправить файл на сервер методом POST с некоторыми параметрами. С передачей самого файла и параметров по отдельности вопросов нет - есть класс WebClient и методы UploadFile и UploadValues. Но как единым POST-запросом передать и файл и параметры?
      Смотри на класс HttpWebRequest
        А на чём сайт написан? АСП.НЕТ? Зачем же париться с ПОСТ? обрабатывай OnClick кнопки "Отправить"...
          Budda Не... Запросы принимает PHP-скрипт. Сначала я запрашиваю у него случайный хеш методом GET, после чего должен вернуть файл с этим хешем и другими параметрыми в POST-запросе. То есть насколько я понял, надо использовать HttpWebRequest для формирования запроса, открывать поток и писать в него файл и другие параметры... <_<
            BillGates
            Цитата BillGates @
            Запросы принимает PHP-скрипт.

            а какого Х тогда писатьв раздел ".НЕТ"? Я с уверенностью сказать не могу, но процентов 80 вероятности того, что никаких заморочек. И потоков открывать не нужно. Есть методика загрузки файла на сервер... и при этом можно передать нужные параметры
              Цитата Budda @
              а какого Х тогда писатьв раздел ".НЕТ"?

              Budda, клиентское приложение на VС++ .NET. Какая разница, кто принимает? Мне важно сформировать этот долбанный запрос :wall: Если не трудно ткни носом в
              Цитата Budda @
              методика загрузки файла на сервер... и при этом можно передать нужные параметры
              Сообщение отредактировано: BillGates -
                Примерно так
                ExpandedWrap disabled
                              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();
                  Цитата BillGates @
                  Budda, клиентское приложение на VС++ .NET. Какая разница, кто принимает?

                  дело в том, что изначально в постановке вопроса надо было сказать, что клиент - программа на .НЕТ (кстати, что заставляет тебя писать под .НЕТ на С++ ?), а сервер - пхп-скрипт.

                  Тогда у тебя типичное клиент-серверное приложение. Я же думал, что обычный сайт.
                    Цитата Budda @
                    дело в том, что изначально в постановке вопроса надо было сказать, что клиент - программа на .НЕТ, а сервер - пхп-скрипт.

                    Извиняюсь, действительно - упущение.
                    Цитата Budda @
                    (кстати, что заставляет тебя писать под .НЕТ на С++ ?)

                    сие воля преподавателя, питающего страстную любовь к С++ ... Поэтому приходится извращаться.
                      BillGatesА он совмещает любовь к С++ и .НЕТ? или же .НЕТ не уважает? Не будет ли проблем в связи с тем, что твой С++ работает под .НЕТ? Ведь препод может любить не только С++, а ещё и WinAPI, нативные сокеты...
                        Budda я конечно ценю английский юмор, но в данный момент мне не хочется изучать морально-этические аспекты любострастия преподавателя. Учитывая то, что опыта в программировании на .НЕТ и вообще программистского опыта мало, мне бы хотелось услышать (в смысле "прочитать") рекомендации к действию, согласно религии С++ :)
                          Извини, не хотел обидеть :) Я просто не знаю ответ на твой вопрос. Пробуй то, что предложил GarF1eld.

                          Но хочу предупредить вот о чём: если препод любит С++, то возможно ему не понравится то, что ты напишешь на С++.НЕТ.... понимаешь? я бы спросил препода, устроит ли его такой (твой) вариант.
                            Budda да я не обижаюсь вовсе :)
                            GarF1eld, я правильно понимаю, что если файл не текстовый, следует использовать ReadAllBytes?
                              Цитата BillGates @
                              GarF1eld, я правильно понимаю, что если файл не текстовый, следует использовать ReadAllBytes?

                              Именно.
                              Честно говоря, мне не приходилось отсылать файл и еще что-то через post. только XML :) Но принцип один и тот же
                              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                              0 пользователей:


                              Рейтинг@Mail.ru
                              [ Script execution time: 0,0318 ]   [ 16 queries used ]   [ Generated: 27.04.24, 06:28 GMT ]