Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.95/19: Рейтинг темы: голосов - 19, средняя оценка - 4.95
 Аватар для ExeiLj
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128

Загрузка файла на сервер и последующая публикация

31.03.2013, 20:52. Показов 4557. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,

у меня какой-то неведомый косяк: загружаю файл на сервер, после чего пытаюсь отправить следующий POST-запрос и он не проходит...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
    TIdMultiPartFormDataStream *FormData;
    FormData = new TIdMultiPartFormDataStream;
    TStringList *Parameters;
    Parameters = new TStringList(NULL);
    TIdHTTP *HTTP;
    HTTP = new TIdHTTP(NULL);
    TIdCookieManager *CookieManager;
    CookieManager = new TIdCookieManager(NULL);
    if (HTTP) {
        try {
            HTTP->CookieManager = CookieManager;
            HTTP->AllowCookies = true;
            HTTP->HandleRedirects = true;
            HTTP->ConnectTimeout = 8000;
            HTTP->ReadTimeout = 8000;
            if (HTTP->Connected()) HTTP->Disconnect();
// Проходим авторизацию
            Parameters->Clear();
            Parameters->Add("username=" + login);
            Parameters->Add("password=" + password);
            Parameters->Add("subaction=dologin");
            html = HTTP->Post(url,Parameters);
///Загружаем картинку
            FormData->Clear();
            FormData->AddFile("file_1",filePath,"image/jpeg");
            FormData->AddFormField("images_number","1");
            FormData->AddFormField("subaction","upload");
            html = HTTP->Post(url + "?mod=files&action=quick&area=template&news_id=",FormData);
///Постим
            Parameters->Clear();
            Parameters->Add("name=" + currentDateTime);
            Parameters->Add("action=dosavenew");
            html = HTTP->Post(url + "?mod=static&action=addnew",Parameters);
            ...
Картинка загружается, но следующий POST-запрос не проходит, я получаю код, как будто бы отправил не пост, а Get.
Если же весь блок с "///Загружаем картинку" закоментировать, то ПОСТ пройдет.
Мне кажется тут какой-то конфликт между TIdMultiPartFormDataStream и TStringList, т.е. после использования FormData стринглист не обрабатывается и пост запрос идет пустой...
Можете что-нибудь подсказать по этому поводу?
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.03.2013, 20:52
Ответы с готовыми решениями:

Копирование файла с локального компьютера на SFTP-сервер и последующая обработка файлов
доброе время суток и сразу к делу -есть локальный компьютер -есть sftp сервер цель - проверить есть ли нужный файл на локальном...

загрузка файла на сервер с вашего сайта на чужой сервер под вашим логином!
Извените зараннее если ошибся разделом, не нашел куда можно отнести данную тему и посчитал как вариат написать в этот раздел, так вот: ...

Авторизация на UCOZ и последующая загрузка сайта
Уважаемые пользователи, при создании программки возникла проблема: После того как авторизовался в форме, на сайте юкоза: sroute.ucoz.com...

24
 Аватар для ExeiLj
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
02.04.2013, 20:07  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Avazart Посмотреть сообщение
Ну тогда учите матчасть для начала - чем отличается POST от GET, хотя это и нет так трудно понять глядя в снифер.
GET отправляет всю информацию в заголовке запроса, длинна которого ограничена. Если вам нужно отправить какое-то слово на сервер - не проблема, оно будет всего несколько букв. Но что делать, если нужно отправить объемный тескт с 2000-3000 символов? Будут проблемы.

POST отправляет информацию в теле запроса, который не имеет максимального размера. Вы можете отправлять огромные тексты, файлы, и все будет нормально. Именно поэтому этот метод ипользуется при загрузке изображений.
Ок, в чем разница в данном случае? Какая разница в какой части пройдет запрос в данном случае? Важно лишь то, что должны проходить оба запроса: с МультиПартФормДата и со СтрингЛист. В моем случае 2 запрос не проходит - это единственное что важно.
Если я упускаю что-то значимое - поправьте.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
02.04.2013, 21:20
Разница большая ибо что бы получить адекватный результат-тест, нужно адекватный пример...
0
 Аватар для ExeiLj
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
02.04.2013, 21:48  [ТС]
Цитата Сообщение от Avazart Посмотреть сообщение
Разница большая ибо что бы получить адекватный результат-тест, нужно адекватный пример...
Хорошо, если не трудно, составьте свой адекватный пример, в котором два POST запроса. 1-й с МультиПартФормДата, 2-й со СтрингЛистом. И скажите, пройдут ли у вас оба запроса?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
03.04.2013, 01:18
Ну говорил же в снифер смотреть надо!!!

При POST multipart/form-data соответствующе устанавливается поле Content-Type
Code
1
Content-Type:multipart/form-data; boundary= -- ...
Но назад не восстанавливается, поэтому перед следующим "обычным" POST- запросом нужно его установить вручную:
C++
1
IdHTTP1->Request->ContentType= "application/x-www-form-urlencoded";
1
 Аватар для ExeiLj
13 / 13 / 3
Регистрация: 02.08.2012
Сообщений: 128
03.04.2013, 09:14  [ТС]
Ну капец ))))

Спасибо, работает!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.04.2013, 09:14

Загрузка файла на сервер
Привет всем) Не подскажете как загрузить какой нибудь файл на сервер. Есть поле, кнопка "Загрузить" и кнопка "Обзор"....

Загрузка файла на сервер
Ребят, искал-искал что надо - нашел уйму сайтов с кодом для обычной загрузки файлов на сервер с компа, а мне надо сделать загрузку...

Загрузка файла на сервер vk
Добрый день Подскажите через какие функции можно загрузить определённый файл на сервер, а именно на...

Загрузка файла на сервер
Что не так? В папку LoadingFile ничего не загружается. @using Microsoft.Web.Helpers; @{ Layout =...

Загрузка файла на сервер
Привет всем. Подскажите, пожалуйста решение. Скрипт загрузки файла на сервер, рабочий: $uploaddir = 'uploads/'; $uploadfile =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru