2013-12-02 4 views
0

Я создаю простой сценарий загрузки, но как только я загрузил файлы. Если я свяжусь с файлом с я получаю сервер Запрещенная ошибка. Я поставил разрешение на 750 (проверил и разрешения являются правильными), так что не понимаю, почему это происходит ....загружать файлы, однажды загруженные с помощью скрипта

Любая помощь будет большим, ниже мой сценарий загрузки:

if($_POST["upload"]){ 

//gets current year for path 
$year = date('Y'); 

//path to directory 
$path = $_SERVER["DOCUMENT_ROOT"] . '/uploads/' . $year . '/' . strtolower(str_replace(' ','',$_POST["username"])) . '/' . $_POST["month"]; 

//path to file 
$target_path = $path . '/' . basename($_FILES['uploadedfile']['name']); 

// $_FILES is the array auto filled when you upload a file and submit a form. 
$file_name = $_FILES['uploadedfile']['name']; // file name 
$file_tmp = $_FILES['uploadedfile']['tmp_name']; // actual location 
$file_size = $_FILES['uploadedfile']['size']; // file size 
$file_type = $_FILES['uploadedfile']['type']; // mime type of file sent by browser. PHP doesn't check it. 
$file_error = $_FILES['uploadedfile']['error']; // any error!. get from here 

if($file_error == UPLOAD_ERR_NO_FILE){ 

    print "<div class='error'>Please select a file first</div>"; 

} elseif ($file_error == UPLOAD_ERR_INI_SIZE) { 

    print "<div class='error'>The file is too large</div>"; 

} elseif($file_error == UPLOAD_ERR_PARTIAL){ 

    print "<div class='error'>An error occured whilst trying to receive the file, please try again.</div>"; 

} elseif(!($file_type=="application/pdf")) { 

     print "<div class='error'>Your File Type is: <b>". $file_type."</b> the file type must be <b>PDF</b></div>"; 

} elseif($file_error == 0){ 

    if(!is_dir($path)){ 

     mkdir($path, 0750, true); 
    } 

    move_uploaded_file($file_tmp, $target_path); 

    chmod($target_path, 0750); 


    print "<div class='success'>The file " . "<span class='filename'>" . basename($file_name) . "</span>" . " has been uploaded to <b>" . $_POST["username"] . "'s</b> folder</div>"; 

} 
} 
+0

проверить журнал ошибок, чтобы узнать, ПОЧЕМУ вы получаете запрет. –

+0

У меня нет error_log по умолчанию, im hosting с 123reg, не уверен, могу ли я установить его до проверки. Спасибо – Rik89

+0

Итак, теперь вам нужно войти в свою панель управления, чтобы просмотреть журнал, а error_log пуст .... блестящий – Rik89

ответ

0

Имеет ли Apache доступ к файлам? Попробуйте добавить строку chown с изменениями chmod.

+0

файл был бы создан apache в первую очередь. Apache не мог нормально кормить файлы. только корень может это сделать. –

+0

YUP попробовал chown ($ path, 'root'); и ему отказали ... – Rik89

0

Оказывается, что разрешение файла 750 или 777 не позволит вам загрузить файл, но 444 будет. Не слишком уверен, почему это честно, но сейчас оно работает.

Спасибо за помощь.

До следующего раза!

Смежные вопросы