Использование Xampp в 64-разрядной версии Windows 7 с несколькими загрузчиками.
Обычная загрузка (через HTTP-пост работает нормально), но при использовании multipart в папке tmp, где должны быть файлы, пусто, поэтому вызовы для ее перемещения не выполняются, как:
Невозможно переместить 'E: \ xampp \ tmp \ php719B.tmp' в 'uploads / Recording-1'
Загрузка кода работает в других местах.
E: \ xampp \ tmp \ пуст и поиск файла tmp внутри xampp не показывает никаких результатов.
за phpinfo ()
Загруженный файл конфигурации E: \ xampp \ php \ php.ini
В соответствии с этим 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
файлы небольшие, поэтому они меньше 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))