ОБНОВЛЕНИЕ / ВОЗМОЖНОЕ РЕШЕНИЕ: Я понял, что файлы перемещаются из C:\Windows\Temp
, но они невидимы из-за прав доступа к файлам.Если я пытаюсь получить доступ к файлам через браузер, я получаю ошибку 401.Я считаю, что эти файлы сохраняют свои исходные права доступа, поэтому я не могу их увидеть или связываться с ними через PHP / браузер.Единственный вариант - изменить разрешения для папки C:\Windows\Temp
или переместить папку default_upload_folder во что-либо в цепочке wwwroot
.
-
У меня есть сервер IIS7, на котором запущен скрипт PHP, который принимает $_FILES
, делает move_uploaded_file
, чтобы добавить файлы в каталог, а также объединяет файлы в архив, используя ZipArchive
.
Оба эти утверждения не выполняются.
Вот логика кода:
ini_set('display_errors',1);
if(!empty($_FILES)){
$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = 'C:\\inetpub\\wwwroot\\sitename\\design\\uploads\\';
$targetFile = $targetPath.$_FILES['Filedata']['name'];
$zip_file = $targetPath . htmlspecialchars($_POST['session_id']) . '.zip';
move_uploaded_file($tempFile, $targetFile);
$zip = new ZipArchive;
$res = $zip->open($zip_file, ZipArchive::CREATE);
$zip->addFile($tempFile, $_FILES['Filedata']['name']);
$zip->close();
}
$tempFile
и $targetPath
показывают, что имеют разрешения 0777
когда я проверяю их из скрипта.
move_uploaded_file
не показывает ошибки и возвращает true
, но ошибки, если я использую другой каталог.Похоже, этот каталог правильный.Этот код не может переместить файл в новый каталог.Нет сообщения об ошибке, если я использую try...catch
.
Ни один из ZipArchive
кодов не будет работать до $zip->close()
, что возвращает false
.Нет сообщения об ошибке, если я использую try...catch
.
Код отлично работал в моей тестовой среде WAMP.Код, выполняющий этот сценарий: C:\inetpub\wwwroot\sitename\design\uploadify\uploadify.php
.
$_FILES
содержит правильные данные, основанные на var_dump
.$tempFile
разрешается до C:\Windows\Temp\php___.tmp
.У меня такое чувство, что это может быть моей проблемой, но я не знаю, как ее решить.