NeoSpy

Загрузить файл на сервер из Delphi методом POST

Загрузить файл на сервер из Delphi методом POST

Сообщение Op6uT 08 дек 2009, 00:57

Как сделать отправку файла на скрипт php при помощи delphi?
Сначала нужно создать сам скрипт

Код: Выделить всё
<?php
$uploaddir = '/www/upload/';
if (move_uploaded_file($_FILES['filename']['tmp_name'], $uploaddir .
$_FILES['filename']['name'])) {
    print "Файл успешно загружен.";
} else {
    print "Возникла ошибка при передаче файла!";
}
?>


PHP-скрипт, принимающий загруженный файл, должен реализовывать логику, необходимую для определения дальнейших действий над принятым файлом. Например, вы можете проверить переменную $_FILES['userfile']['size'], чтобы отсечь слишком большие или слишком маленькие файлы. Также вы можете использовать переменную $_FILES['userfile']['type'] для исключения файлов, которые не удовлетворяют критерию касательно типа файла.
В случае, если при отправке формы файл выбран не был, PHP установит переменную $_FILES['userfile']['size'] значением 0, а переменную $_FILES['userfile']['tmp_name'] - пустой строкой. none.
По окончанию работы скрипта, в случае, если принятый файл не был переименован, или перемещен он будет автоматически удален из временной папки.


После этого займёмся созданием процедуры на делфи:

Код: Выделить всё
uses IdBaseComponent, IdComponent, IdTCPConnection,  IdTCPClient, IdHTTP,  IdSmtp, IdMessage;
//...
procedure SendFile;
var
Stream: TIdMultipartFormDataStream;
begin
Stream := TIdMultipartFormDataStream.Create;
try
   Stream.AddFile('filename', 'C:\1.txt', 'text/html');
   Form1.IdHTTP1.HandleRedirects := True;
   Form1.Memo1.text:=Form1.IdHTTP1.Post('http://ru.neospy.net/delphitest.php', Stream );
finally
   Stream.Free;
end;
end;


Компонент TIdHTTP находится в закладке Indy clients в delphi.
Эта процедура отправляет файл методом POST на сервер. 8-)
Op6uT
 

Re: Загрузить файл на сервер из Delphi методом POST

Сообщение Гость 27 дек 2015, 07:52

I am very glad to have read a good story.


Последний раз поднималось Anonymous 27 дек 2015, 07:52.
Гость
 


Вернуться в Delphi

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron