-
Мила (12.10.10 05:14) [0]Здравствуйте.
Возникла необходимость отправлять файл на сервер. Решил использовать для этого IdHTTP компонент и принимающий PHP скрипт. Поискал в интернете по этой теме, нашел куски когда, но они у меня не работают. мне надо просто отправить тестовый файл на сервер, и чтоб он там был просто сохранен в папку.
вот код на делфи:
procedure TForm1.Button1Click(Sender: TObject);
var
FileName: string;
response: string;
formData: TIdMultipartFromDataStream;
begin
FileName := ExtractFilePath(paramstr(0))+'reports.txt';
formData := TIdMultipartFromDataStream.Create;
formData.AddFile('MyFile', filleName, 'text/plain');
IdHTTP1.Request.ContentType := 'multipart/form-data';
try
response := IdHTTP1.Post('http://xx.xxx.xxx.xx/upload.php', formData);
Memo1.Lines.Text := response;
exceprt
end;
end;
И код PHP:
<?php
$sMyFile = $_FILE['MyFile'];
copy($MyFile, "mFile.txt");
echo 'OK';
?>
В memo1 OK от сервера приходит, но файла я так и не вижу.
Помогите пожалуйста! -
brother © (12.10.10 05:23) [1]разрешения на запись точно есть? ОС сервера?
> В memo1 OK от сервера приходит,
оно придет в любом случае, тк т проверки работы copy... -
Мила (12.10.10 07:23) [2]ОС WindowsXP
в httpd.conf cnjbn
LoadModule rewrite_module modules/mod_rewrite.so -
Виктор (10.11.10 11:31) [3]В коде PHP фигня какая-то... Имя файла должно быть как:
$_FILES ["MyFile"] ["tmp_name"] -
Gregi (23.04.11 17:37) [4]<?php
if (is_uploaded_file($_FILE['myfile']['tmp_name']) {
move_uploaded_file($_FILE['myfile']['tmp_name'], $_FILE['myfile']['name']);
echo 'OK';
}
?> -
Gregi (23.04.11 17:37) [5]Удалено модератором
-
Sam Bellamy (17.05.11 20:41) [6]Всем привет, я столкнулся с такой же задачей на основе всего выше сказанного итог следующий :
Код в Delphi
procedure SendFile();
var
FileName: string;
response: string;
formData: TIdMultipartFormDataStream;
idhttp1: TIdHTTP;
begin
idhttp1 := TIdHTTP.Create(nil);
FileName := ExtractFilePath(paramstr(0)) + 'reports.txt';
formData := TIdMultipartFormDataStream.Create;
formData.AddFile('file', fileName, 'text/plain');
IdHTTP1.Request.ContentType := 'multipart/form-data';
try
response := IdHTTP1.Post('http://localhost/upload.php', formData);
form1.Memo1.Lines.Text := response;
finally
idhttp1.Free;
end;
end;
Файл upload.php, скрипт просто выводит полученный файл в браузер<?php
if (isset( $_FILES['file'])){
$string = join('', file($_FILES['file']['tmp_name']));
echo htmlspecialchars($string);
}
?> -
Palladin © (17.05.11 21:59) [7]хреновый итог