Excel 파일은 데이터베이스에 저장됩니다 (이전 바이너리 데이터의 16 진수 값). 나는 그것을 읽고 그것을 다운로드 할 수있게해야한다.PHP 헤더를 통한 Excel 전송()
여기
$out = hex2bin($out); // the stuff from the database
header("Content-Type: application/vnd.ms-excel");
header("Content-Transfer-Encoding: binary");
header("Content-Disposition: attachment; filename='$filename'");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
die($out);
는 사실 내가 물건을받을 ... 코드의 ... 그리고 약간의 차이가 원본 파일처럼 보인다. 헥스 편집기를 사용하는 경우 , 그것은 (추가 탭 모양)
ÐÏࡱá
대신
ÐÏࡱá
을 보여줍니다. 따라서 Excel에서는 시트를 표시 할 수는 없지만 원시 데이터는 표시 할 수 있습니다.
이것은 데이터가 아니며 $out
입니다. 변환 bin2hex (데이터베이스에서 가져 오기 중) 및 hex2bin (데이터베이스에서 내보내기) 문제없이 작동합니다. fopen/fwrite를 통해 $out
을 파일에 쓰면 정확히 원래의 Excel 파일 (정상적으로 열 수 있음)입니다.
어떻게하면됩니까?
이것은 매우 지역화 된 질문이지만, die() 전에 공백 문자가 울리는 것과 관련이있을 수 있다고 생각합니다. – Farkie
왜 당신은 죽을 사용하고 있습니까? die는 exit와 같으며 오류 코드 또는 다른 것이어야합니다. 왜 반향을하지 않을까요? 출구(); – steven
글쎄, 실제로 두 버전은 차이점을 보이지 않습니다. – user2432939