@Max Можете ли вы удалить файлы, если вы используете 644? Вам не нужно разрешение «выполнить» для этого?

дал небольшую CMS для веб-сайта, над которым я работаю, и у меня есть форма, которая загружает файлы изображений для использования на веб-сайте. Он успешно загружает файлы, но установленные разрешения не позволяют просматривать файл в браузере.

Вот мой текущий код PHP для загрузки файлов

$typepath = $_POST['filetype'];

$target_path = "../../images/uploads/".$typepath."/";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "<p>The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded</p>\n<p>To the directory:  <span style=\"font-weight:bold;\">".substr($target_path, 6)."</span></p>";
} else{
    echo "There was an error uploading the file, please try again!";
}
 Your Common Sense17 янв. 2011 г., 16:40
@Spudley это 403. И это все ещесервер проблема, а не браузер.
 Your Common Sense17 янв. 2011 г., 16:27
Браузер не имеет ничего общего с правами доступа к файлам. Можете ли вы рассказать более реальную историю, желательно с копией вставленных сообщений об ошибках? Спасибо
 Spudley17 янв. 2011 г., 16:31
@Col. Шрапнель - да, это так. Если файл не имеет разрешения на чтение на сервере, браузер получит401 not authorised ошибка.

Ответы на вопрос(1)

Решение Вопроса

PHP Manaualchmod http://php.net/manual/en/function.chmod.php

chmod("/somedir/somefile", 0755);

В контексте;

$typepath = $_POST['filetype'];

$target_path = "../../images/uploads/".$typepath."/";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    chmod($target_path, 0755);
    echo "<p>The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded</p>\n<p>To the directory:  <span style=\"font-weight:bold;\">".substr($target_path, 6)."</span></p>";
} else{
    echo "There was an error uploading the file, please try again!";
}
 Max17 янв. 2011 г., 16:53
Я пошел на 644 в конце.
 StefanNch09 мая 2014 г., 10:11
@Max Можете ли вы удалить файлы, если вы используете 644? Вам не нужно разрешение «выполнить» для этого?
 Matt Lowden17 янв. 2011 г., 16:32
Рад, что смог помочь
 Berry Langerak17 янв. 2011 г., 16:33
Однако следует помнить: использование chmod 755 означает, что владелец может читать, писать и выполнять. Теперь группа может читать и писать. «Другой» (любой другой) может читать и писать. Теперь я предполагаю, что люди не смогут попасть в каталог, но если это так, они могут внедрить вредные вещи в ваши файлы. Я всегда вместо этого выбираю chmod 750.
 Max17 янв. 2011 г., 16:31
ах классно! Работает угощение.

Ваш ответ на вопрос