2011-09-18 5 views
3

모바일 브라우저에서 일부 파일 (확장자 - .apk, .dcm, .pdf, .zip 등)을 다운로드하는 PHP 스크립트를 작성하고 싶습니다. 나는 그 파일들을 다운로드하기 위해 PHP 코드를 작성했으며 모든 브라우저 (모바일 브라우저가 아님)에서 잘 작동한다. 하지만 HTC 모바일을 사용해 보았는데 웹 페이지를 여는 것처럼 다운로드하는 대신 파일을 열려고합니다.모바일 브라우저에서 PHP를 사용하여 파일을 강제로 다운로드하는 방법은 무엇입니까?

모바일 브라우저에서 다운로드를 활성화하려면 어떻게해야합니까?

당신에게

PS 감사합니다 나는 그것을 할 방법이입니다. jquery 코드를 사용하여 PHP 파일에 매개 변수를 보내면 적절한 다운로드 파일 경로가 반환됩니다.

jQuery 코드 조각은 다음과 같습니다

$.post('saveData.php',{ name: name.val(), email: email.val(), phone:phone.val(), address:address.val(), version:vers, swVersion:swvers, type:type }, 
function(data) 
{      
    var links = data; 
    document.body.innerHTML += "<iframe src='" + links + "' style='display:hide;' ></iframe>"; 
}); 

"링크"변수는 PHP 파일에서 다운로드 경로 리턴이 포함되어 있습니다. Iframe에서는 다운로드 창이 허용됩니다. 하지만 모바일 브라우저에서는 작동하지 않습니다.

+2

올바른 MIME 유형 헤더를 보내시겠습니까 ?? –

+0

이것은 너무 적은 정보입니다. 약간의 코드를 보여주세요. –

+0

이것이 제가하는 방법입니다. jquery 코드를 사용하여 PHP 파일에 매개 변수를 보내면 적절한 다운로드 파일 경로가 반환됩니다. jQuery 코드 스 니펫은 다음과 같습니다. $ .post ('saveData.php', {name : name.val(), email : email.val(), phone : phone.val(), address : address.val() , version : vers, swVersion : swvers, type : type}, function (data) {var links = data; document.body.innerHTML + = " "; }); "links"변수는 PHP 파일에서 다운로드 경로를 반환합니다. Iframe에서는 다운로드 창이 허용됩니다. – gamini2006

답변

4

는 다음과 같은 헤더를 시도 :

header('Content-Type: application/force-download'); 
header('Content-Disposition: attachment; filename="filename"'); 

아이디어는 브라우저가 여는 방법을 모르는 뭔가 내용 유형 설정하는 것입니다 - 그것은 저장 대화 상자를 표시합니다 그런 식으로. 실제 MIME 형식으로 시도해 볼 수는 있지만 정상적으로 작동하는지는 테스트 할 수 없습니다.

+0

upvoted하지만 질문보다는 제안을하는 것이 좋습니다 –

+0

이것은 여전히 ​​iPhone의 브라우저에서 MP3를 재생합니다. 다운로드를 허용하지만 스트리밍을 방지 할 수있는 방법이 있었으면합니다. – Zade

관련 문제