2013-10-17 2 views
2

나는 오랜 시간 동안 이미 검색 중이었고 아직 정답을 보지 못했습니다.스마트 폰과 태블릿에서 header()를 사용하여 php로 이미지 다운로드

사용자가 JPG에서 만든 signPicture를 다운로드 할 수있는 PHP 시스템을 만들려고합니다. 프로그램이 모든 데스크톱 컴퓨터에서 정상적으로 작동합니다. IE8조차도 전혀 문제가 없습니다. 내가 사용하는

헤더 :

header("Content-Type: application/octet-stream"); 
header('Content-Disposition: attachment; filename="test.jpg"'); 

결국 난 그냥 사진을 스트리밍 : 나는 모든 브라우저에서 정말 좋은 일하고 말했다 어떻게

imagejpeg($imgSign,NULL,100); 

. 그런 다음 안드로이드에서 test.jpg 파일을 다운로드하는 휴대 기기로 이동하지만 열 수는 없습니다 ... ipad (실제로 다운로드하지 않으면 브라우저에 이미지가 표시됩니다. 내가 구하는 것보다 ...하지만 그것도 열리지 않는다).

는 또한 내가 본 예제를 더하려고 노력하지만, 같은, 아무것도 변경 나던 : 모바일 장치에서이 문제를 밖으로 정렬하는 방법

header("Pragma: public"); 
header("Expires: 0"); 
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Content-Type: application/force-download"); 
header("Content-Type: application/download"); 
header("Content-Transfer-Encoding: binary "); 

어떤 생각?

감사합니다.

+1

저장했지만 열 수 없습니다. 무슨 뜻이야, 파일이 만들어지지 않았 니? 그것은 빈 만들어 졌는가? 생성되었지만 작동하지 않습니까? 그것이 있어야하는 것보다 작습니까? 그 내용에 이상한 것이 있습니까? 정확히 무슨 일이 일어나고있는거야? – Havenard

+0

모바일 브라우저와 관련하여이 답변을 확인하십시오. 자세한 내용은 http://stackoverflow.com/questions/10615797/utility-of-http-header-content-type-application-force-download-for-mobile – Jake

+0

파일 저장 , 나는 그것이 전화 나 태블릿에 있음을 알 수 있습니다. 그런 다음 열어 보려고 열어 볼 때 그 unreadeble, 그래서 그것은 말 : 귀하의 사진을 읽을 수 없거나 중간에 JPG charachter와 검은 화면 ... 만약 내 전화에서 내 컴퓨터에 파일을 보내려면 읽을 수 있지만 실제로 크기 (null이 아님)가 있음을 알 수 있습니다. – JsStack

답변

3

알았습니다.

다른 문제가있었습니다. 이 게시물의 댓글에서 분명한 해결책을 발견 : http://www.digiblog.de/2011/04/android-and-the-download-file-headers/

header("Content-Type: application/octet-stream"); 
header('Content-Disposition: attachment; filename="test.JPG"'); 

중요한 단계 : 나는 양식 모두를 보냅니다. 형식이 모바일에서 작동하도록하려면 대상 = '_ top'및 메서드 = 'get'이 있어야합니다.

확장자 (jpg)가 대문자로되어 있지 않고 파일 이름이 ""사이.

이제는 내가 시도한 모든 장치에서 작동합니다. :)

게시물의 저자 인 Jörg Wagner에게 감사드립니다.

+0

좋은 제안이지만 작동하지 않습니다. iOS에서는 이미지가 브라우저에 표시되지만 다운로드하지는 않습니다 (사용자가 저장하지 않은 경우). – PanMan