Я написал эту функцию, и все работает хорошо, пока я не пытаюсь открыть загруженную копию, и это показывает, что файл недействителен. Вот моя функция
function download_file() {
//Check for download request:
if(isset($_GET['file'])) {
//Make sure there is a file before doing anything
if(is_file($this->path . basename($_GET['file']))) {
//Below required for IE:
if(ini_get('zlib.output_compression')) {
ini_set('zlib.output_compression', 'Off');
}
//Set Headers:
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $this->path . basename($_GET['file'])) . ' GMT');
header('Content-Type: application/force-download');
header('Content-Disposition: inline; filename="' . basename($_GET['file']) . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($this->path . basename($_GET['file'])));
header('Connection: close');
readfile($this->path . basename($_GET['file']));
exit();
}
}
}
РЕДАКТИРОВАТЬ: по недействительным, например, я загружаю изображение и пытаюсь просмотреть его в iPhotos или Windows Picture Viewer, и он говорит, Формат файла не поддерживается. Когда я смотрю его на сервере, он выглядит нормально, но после загрузки он поврежден.