0
이 코딩 스타일을 사용하여 MYSQL 데이터베이스에 파일을 저장했습니다. 정확하게 저장했는지는 확실합니다.저장된 파일을 다운로드하기위한 PHP 헤더 수정하기
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
그러나 데이터베이스에서 다운로드하는 데 문제가 있으며 헤더가 잘못되었습니다. 순간
$resumename = get_the_author_meta('resumename', $current_user->ID);
$resumetype = get_the_author_meta('resumetype', $current_user->ID);
$resumesize = get_the_author_meta('resumesize', $current_user->ID);
$content = get_the_author_meta('resumecontent', $current_user->ID);
header("Content-Length: $resumesize");
header("Content-Type: $resumetype");
header("Content-Disposition: attachment; filename=$resumename");
echo($content);
는 페이지 (오히려 다음, 헤더를 사용하여 파일 데이터를 실제 페이지 데이터를로드하는 것)로, 손상된 파일을 반환합니다.
누구나 올바른 헤더를 사용할 수 있습니까? 나는 @readfile을 시도했다, 그것은 더 나쁘다. 파일 형식은 주로 doc, pdf, rtf입니다. 어떤 도움을 주셔서 감사합니다!
왜 디버깅을 위해 보내는 헤더를 출력하지 않습니까? - 적절한 헤더가 전송되는지 확인하기 만하면됩니다. 또한 나는 적어도 당신이 Content-Transfer-Encoding : 바이너리 헤더를 추가해야한다고 생각한다. – Andreas