Конференция "Сети" » Отправка TXT файла через IdHTTP.POST [D7, WinXP]
 
  • Мила (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]
    хреновый итог
 
Конференция "Сети" » Отправка TXT файла через IdHTTP.POST [D7, WinXP]
Есть новые Нет новых   [134436   +23][b:0][p:0.002]