Как добавить текст к файлу на веб-сервере?


Я использую Lazarus 1.0.8 (последняя версия) и установил Indy 10. У меня также есть сайт с PHP скриптом, который сохраняет на сервере текстовый файл (называется "статистика.формат txt"). Я хотел бы, используя мою программу, загрузить другой текстовый файл, содержащий текст статистики + новый текст, который я написал в памятке. Я не хочу просить вас написать код для меня, просто не могли бы вы дать мне совет о том, как я мог бы это сделать?

Я думал, что смогу загрузить содержимое " статистики.txt " на памятке а затем загрузите это снова, но добавив новый текст. Есть ли лучший способ?

2 2

2 ответа:

Лучший способ сделать это зависит от того, какие возможности предлагает сервер. Если у сервера есть какая-то команда" добавить", вы можете отправить запрос с этой командой и новым текстом и позволить серверу обновить свои данные. Проверьте документацию к программному обеспечению сервера.

Он может предложить URL-адрес, на который можно отправить данные с помощью команды POST. Компонент indy'S TIdHTTP имеет метод Post; Вы можете предоставить URL-адрес и текстовые данные, и он позаботится о создании HTTP соединение, отправка данных и интерпретация любого ответа.


Если сервер предлагает только способы запроса всего текста и получения всего текста, то у вас нет выбора, кроме как сделать то, что описано в вопросе: загрузить все данные, изменить их локально, а затем обновить сервер.

Получение текущей версии данных, вероятно, будет включать запрос GET. Компонент indy'S TIdHTTP предлагает несколько методов Get, которые принимают URL-адрес и возвращают данные либо в строке, либо в поток.

После того, как вы изменили свои данные, вы, вероятно, обнаружите, что можете отправить запрос POST или, возможно, поместить и включить обновленные данные.

Здесь вопрос состоит из двух частей: как вы загружаете файл через HTTP, и как вы делаете это с Lazarus? Давайте возьмем их по одному.

Вы загружаете файл с помощью HTTP, отправляя POST-запрос и кодируя файл с помощью MIME-кодирования составных форм. Это специальный протокол, разработанный специально для загрузки файлов по протоколу HTTP, и именно его ожидает сервер.

Итак, как вы настраиваете HTTP-запрос с кодировкой составных форм? Ты сказал, что ты ... используя Indy 10, поэтому взгляните на класс TIdMultiPartFormDataStream в блоке IdMultipartFormData. Это должно быть достаточно просто, как только вы просмотрели интерфейс класса, и есть перегрузка метода TidHTTP.Post(), который принимает объект TIdMultiPartFormDataStream в качестве входных данных.