2016-01-19 2 views
1

настоящего времени я использую Localhost запускать мои страницы и в настоящее время я пытаюсь загрузить файлы моих пользователей загрузили и хранятся в папке под названием uploaded_filesНевозможно загрузить мои файлы из моей папки с помощью PHP

это код для моей страницы загрузки, который не работает, и я не совсем уверен, что случилось.

<?php 

$file = $_GET['file']; 

if (file_exists($file)) { 
header('Content-Description: File Transfer'); 
    header('Content-Type: application/force-download'); 
    header("Content-Disposition: attachment; filename=\"" . basename($file) . "\";"); 
    header('Content-Transfer-Encoding: binary'); 
    header('Expires: 0'); 
    header('Cache-Control: must-revalidate'); 
    header('Pragma: public'); 
    header('Content-Length: ' . filesize($name)); 
    ob_clean(); 
    flush(); 
    readfile("C:\xampp\htdocs\FYPproject\uploaded_files/".$file); //showing the path to the server where the file is to be download 
    exit; 
} else { 
    echo "Download failed"; 
    echo $file; 
} 
?> 
+0

«Не работает». Вы видите «Ошибка загрузки» или некоторая другая ошибка? Btw. Вы проверяете 'file_exists ($ file)' без полного пути, но используете 'readfile()' с полным путем ... и последним/должно быть \. И вы должны сделать \\ вместо \. :) –

+0

Что говорит журнал ошибок PHP? – SacWebDeveloper

+0

Это поможет вам: http://www.media-division.com/the-right-way-to-handle-file-downloads-in-php/ – gibberish

ответ

0

file_exists() необходимо получить путь к файлу, если имя файла "test" и это в "uploaded_files/", так что вы должны проверить file_exists("uploaded_files/test"). Вам не нужно передавать весь путь, если ваш php уже находится в папке "FYPproject". То же самое и для загрузки файлов, вам не нужно передавать весь путь для readfile().

0

Вы передаете путь к файлу с обратной косой чертой и косой чертой до readfile. Даже если это не является причиной вашей проблемы, вы должны ее изменить. Измените его следующим образом:

readfile("C:\xampp\htdocs\FYPproject\uploaded_files\".$file);

0

Не все браузеры поддерживают application/force-download так что в этом случае попробуйте заменить приведенный выше код с application/octet-stream и посмотреть, если он работает

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