질문 : 브라우저에서 파일 이름을 변경하지 않고 웹 브라우저에서 사용자 컴퓨터로 파일을 다운로드 할 수 있습니까?브라우저에서 이름/확장명을 변경하지 않고 어떻게 파일을 다운로드하게합니까?
배경 : 셰어웨어 앱이 있으며 사용자가 라이선스를 구매하여 활성화 할 수 있습니다. 라이센스는 XML 파일이지만 확장자는 ".mlic"이 아니라 ".xml"입니다. mlic은 내 응용 프로그램이 인식하는 특별한 파일 확장명입니다. 사용자가 돈을 지불하면 mlic 파일과 관련 HTTP 헤더를 푸는 PHP 스크립트로 리디렉션됩니다. 내 스크립트는 아래에 있습니다.
문제점 : 일부 사람들은 파일 다운로드를 license.xml 또는 license.mlic.xml로 말하고 있으며이 파일을 어떻게 처리해야할지 모릅니다. 나는이 사람들이 사용하는 브라우저 나 OS를 모른다. 나는 복제 할 수 없다. 내 응용 프로그램은 Mac에서만 사용할 수 있으므로 OS X와 관련이 있습니다.
해결책 : 이것에 대해 어떤 조치를 취할 수 있습니까? 명시 적으로 파일 확장명을 지정하는 HTTP 헤더가 있습니까?
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"license.mlic\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $filesize($input_path));
ob_end_flush();
@readfile($input_path);