Я использую функцию move_uploaded_file для загрузки файлов. Файлы перемещаются в правильный каталог, и я вижу его физическое существование, но не могу их открыть. Я получаю ошибку «Отказано в доступе». Я просматриваю свойства файла и обнаружил, что у него нет владельца.
Кстати, я использую IIS в Windows 2008.
Проверяю разрешения, все настроено правильно. Пользователь, который запускает веб-сервис, имеет полные права администратора.
Кроме того, я заменил функцию move_uploaded_file на copy () и смог получить доступ к файлу. У него также был пользователь, который запускает сервер как его владелец.
Что, черт возьми, может быть не так?
Спасибо, я ценю вашу помощь.
UPDATE:
После перемещения файла я попытался установить разрешения с помощью chmod ($ filename, 0655), но это тоже не сработало.
ОБНОВЛЕНИЕ 2 (решение):
Хорошо, ребята, я понял это.
Системный администратор не установил upload_tmp_dir. Это сработало, как только мы добавили путь.
Исходный код:
// Check if file was uploaded
if(isset($_FILES['formname']) && $_FILES['formname']['size'] > 8){
$displayName = $_FILES['formname']['name'];
$displayName = unixfilename(basename($displayName));
$tempName = $_FILES['formname']['tmp_name'];
$filename = $_FILES['formname']['name'];
$fileType = substr($filename, strrpos($filename,".")+1);
$filename = substr($filename,0,strrpos($filename,".")) . date("_Ymd_His") . ".$fileType"; // Add unique identifier
$filename = unixfilename(basename($filename));
$destinationPath = "xx\yy\zz\\";
// Check if the file is of a valid type
if($fileType == "txt"){
// Check if file exists in processor folder
if(!file_exists($destinationPath.$filename)){
if(move_uploaded_file($tempName,$destinationPath.$filename)){
if(file_exists($destinationPath.$filename)){
// success