За последние 24 часа нас посетили 14866 программистов и 1728 роботов. Сейчас ищут 528 программистов ...

Приложению delphi не удается сохранить файл на сервере. PHP Warning: File upload error.

Тема в разделе "PHP для новичков", создана пользователем noice, 21 янв 2024.

Метки:
  1. noice

    noice Активный пользователь

    С нами с:
    7 сен 2012
    Сообщения:
    157
    Симпатии:
    0
    Задача: отправить из delphi11 приложения(код внизу) файл imgfile на сервер http://ddddd.ru/get/get.php (код внизу) и сохранить его там.

    Но в логах сервера ошибка и файл не сохраняется:
    PHP:
    1. [Sun Jan 21 07:01:50.336931 2024] [proxy_fcgi:error] [pid 2258566:tid 140640750908992] [client 192.168.1.111:57650] AH01071: Got error 'PHP message: PHP Notice:  Unknown: file created in the system's temporary directory in Unknown on line 0PHP message: PHP Warning:  File upload error - unable to create a temporary file in Unknown on line 0'
    ; Temporary directory for HTTP uploaded files (will use system default if not
    ; specified).
    ; https://php.net/upload-tmp-dir
    ;upload_tmp_dir =
    Перевод:
    ; Временный каталог для загруженных по HTTP файлов (будет использоваться системный каталог по умолчанию, если не указано)
    Но у меня в коде указан путь! И он возвращает ответ приложению правильно

    PHP:
    1. <?php
    2. //Задаем заголовок ответа
    3. header("Content-Type: text/html; charset=utf-8");
    4. //Проверяем в поступивших данных наличие данных поля "title"
    5. if (!empty($_POST['title'])){
    6.     echo 'Заголовок: '.$_POST['title'].'<br>';
    7. } else {
    8.     echo 'Заголовок: Отсутствует'.'<br>';
    9. }
    10. //Проверяем в поступивших данных наличие данных поля "content"
    11. if (!empty($_POST['content'])){
    12.     echo 'Содержимое: '.$_POST['content'].'<br>';
    13. } else {
    14.     echo 'Содержимое: Отсутствует'.'<br>';
    15. }
    16. //Проверяем в поступивших данных наличие прикрепленного файла "file"
    17. if (!empty($_FILES['file'])) {
    18.  
    19. $finfo = pathinfo($_FILES['file']['name']); //получаем инфо о файле (имя, расширение и т.д.)
    20.  
    21.   //Проверяем тип файла в списке допустимых типов( ИМПРОВИЗАЦИЯ :) )
    22.   if (stripos('jpgpnggif',$finfo['extension'])==0){
    23.    echo '>>>>>>>Недопустимый тип файла<<<<<<<<';
    24.    exit;  //Если не допустим тип, полностью останавливаем скрипт
    25.   }
    26.  
    27.    
    28.    $fname = 'get/' . 'testimgfile.' . $finfo['extension']; //формируем путь и новое имя файла
    29.    move_uploaded_file($_FILES['file']['tmp_name'],$fname);//сохраняем временный файл 'tmp_name' в файл $fname
    30.    echo 'https://'.$_SERVER['HTTP_HOST'].'/'.$fname; //возвращаем полный путь к файлу
    31.  
    32. }
    33.  
    34. ?>


    Код (Text):
    1. DELPHI=============================================================================================================
    2. procedure TForm1.PostButClick(Sender: TObject);
    3. var dataPost:TIdMultiPartFormDataStream;
    4. begin
    5.    dataPost:=TIdMultiPartFormDataStream.Create;
    6.    dataPost.AddFormField('title',title.Text,'utf-8').ContentTransfer := '8bit';
    7.    dataPost.AddFormField('content',content.Text,'utf-8').ContentTransfer := '8bit';
    8.    dataPost.AddFile('file',imgfile.Text,''); //добавляем поле с файлом
    9.     response.Text:= StringReplace(idHTTP1.Post('http://ddddd.ru/get/get.php',dataPost),'<br>',#13#10,[rfReplaceAll]);
    10.     datapost.Free;
    11. end;
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.793
    Симпатии:
    1.330
    Адрес:
    Лень
    $fname + __DIR__ + directory существующая
     
  3. noice

    noice Активный пользователь

    С нами с:
    7 сен 2012
    Сообщения:
    157
    Симпатии:
    0
    а куда это вставлять?
    $fname = 'get/'.... тут идет присвоение
    сюда?
    move_uploaded_file($_FILES['file']['tmp_name'],$fname+ __DIR__ + '/home/user/www/123'); так?