2011-12-15 8 views
1

У меня есть часть кода, которая позволяет пользователям загружать файл с сервера (документ, такой как docs, docx, pdf и т. Д.).PHP - Каковы правильные заголовки для загрузки файла?

Пользователи могут скачивать файлы, но у нее есть ошибки, такие как файлы были повреждены. Например, файл MS Word после загрузки требует восстановления для чтения содержимого.

Интересно, что если в этом коде есть какая-либо ошибка (или проблема при загрузке?).

$size_of_file = filesize($download_path); 
header('Content-Description: File Transfer'); 
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename=' . $file_name); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
header('Pragma: public'); 
header('Content-Length: ' . $size_of_file); 
//read file from physical path 
readfile($download_path); 

enter image description here

+0

Вы можете попробовать создать тип содержимого в зависимости от типа файла, вместо того, чтобы всегда использовать «октет-поток». Другой комментарий: попробуйте удалить заголовок «передача файла». Я сделал то, что вы хотите в нескольких проектах, и я никогда не пользовался таким заголовком. – jap1968

+0

ли ваш метод readfile() печатает содержимое ваших файлов? вы должны написать их с помощью команды echo(). – belgther

+1

@belgther - readfile() всегда печатает содержимое файла в стандартный вывод. Вернемся к вопросу, maby вы печатаете что-то (пробел, новую строку и т. Д.) Перед чтением файла, и он разбивает загруженный файл? Это возможно, потому что файл после восстановления. – piotrekkr

ответ

1

Я нашел корень проблемы, у меня есть дополнительные пробелы после тега тега php. Спасибо вам, ребята.

1

Пробовали ли вы, как это?

<?php 
    header("Content-type: application/vnd.ms-word"); 
    header("Content-Disposition: attachment; Filename=SaveAsWordDoc.doc"); 
?> 
+0

Я нашел корень проблемы, у меня есть дополнительные пробелы после тега close php. – hungneox

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