Xampp не загружает файлы, когда multipart - PullRequest
0 голосов
/ 19 марта 2012

Использование Xampp в 64-разрядной версии Windows 7 с несколькими загрузчиками.

Обычная загрузка (через HTTP-пост работает нормально), но при использовании multipart в папке tmp, где должны быть файлы, пусто, поэтому вызовы для ее перемещения не выполняются, как:

Невозможно переместить 'E: \ xampp \ tmp \ php719B.tmp' в 'uploads / Recording-1'

Загрузка кода работает в других местах.

E: \ xampp \ tmp \ пуст и поиск файла tmp внутри xampp не показывает никаких результатов.

  1. за phpinfo ()
    Загруженный файл конфигурации E: \ xampp \ php \ php.ini

  2. В соответствии с этим php.ini, E: \ xampp \ tmp \ IS - правильная папка tmp, и загрузка разрешена.

    ;;;;;;;;;;;;;;;;
    ; File Uploads ;
    ;;;;;;;;;;;;;;;;
    
    ; Whether to allow HTTP file uploads.
    file_uploads = On
    
    ; Temporary directory for HTTP uploaded files (will use system default if not
    ; specified).
    upload_tmp_dir = "E:\xampp\tmp"
    
    ; Maximum allowed size for uploaded files.
    upload_max_filesize = 128M
    
  3. файлы небольшие, поэтому они меньше 128 МБ.

Я в недоумении от того, что я делаю неправильно, почему XAMPP теряет загружаемые файлы или куда их помещает, если они не потеряны.

ОБНОВЛЕНИЕ: ИСПРАВЛЕНО.

В этом случае целевая папка выгрузки для скрипта должна была быть полностью квалифицированной ("E: / xampp / php / tmp / uploads /"), а не относительным патчем: ("uploads"), я предполагаю это временное значение на самом деле означает только длину запроса, поэтому они не показывались после того, как были немедленно очищены.

Вот рабочий код:

$toBasePath = "E:/xampp/php/tmp/uploads/";

$file=$_FILES['Filedata'];
            $len = count($file['name']);
            echo("multipart found ".$len);

            for($k=0;$k<$len;$k++){


                $target_path = $toBasePath .basename( $file['name'][$k]);               
                if(move_uploaded_file($file['tmp_name'][$k], $target_path))
...