2014-12-06 2 views
5

JS로 시작하려면 내 장점 중 하나가 아닙니다. 나는이 JS 함수를 편집하여 base64 이미지를 강제로 다운로드하도록 지난 며칠 동안 노력해 왔습니다. 이 기능은 다운로드 버튼을 클릭 할 때 이미지가있는 새 창을 엽니 다. 사용자는 그림을 오른쪽 클릭하고 저장해야합니다. 마우스 오른쪽 버튼 클릭 대신 이미지 다운로드를 강요하고 '다른 이름으로 저장'을 시도하고 있습니다.강제 다운로드 base64 이미지

dataurl의 생산 base4 PNG 문자열 (데이터 : 이미지/JPEG, Base64로,/9J/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQ ... ... ...)

는 내가 그것을 다른 스레드에서 제안했지만 문제가 해결되지 않은로 사용했습니다.

모든 제안을 환영합니다. 감사.

savePaint: function() { 
      var self = this; 

      dataURL = self.context.canvas.toDataURL(); 

      var cntnt = $("<p class='dialogHeader'>Please right click and select 'Save Image As' option. Click here to Return</p>   <img id='PrintImage' src=" + dataURL + ">"); 
      self.newSavedImage.html(cntnt); 

      self.showPopup(self.newSavedImage, self.canvasWidth, self.canvasHeight) 
} 

답변

0

브라우저가 기본적으로 이미지 열려고하지 않도록 당신은 오히려 이미지/JPEG가 아닌 다른 MIME 유형을 지정할 수 있습니다 :

data:application/octet-stream;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/... 

이 다운로드 할 파일을 강제로,하지만 내가 발견 일부 브라우저 구성에서는 기본 파일 이름으로 자동 저장 될 수 있으며 브라우저는 실제 파일 유형을 알지 못하기 때문에 올바른 유형을 지정하는 것은 사용자의 몫입니다. 아쉽게도 데이터 URI 스키마는 제안 된 파일 이름을 허용하지 않습니다.

더 많은 가능한 해결책은 Using HTML5/Javascript to generate and save a file을 확인하십시오. 요구 사항에 따라 최선의 방법은 Downloadify과 같은 플래시 기반 솔루션을 사용하는 것입니다.

5

마침내! 나는 일하도록했다. 동일한 문제를 겪고있는 사람은 누구나 여기 http://danml.com/download.html이라는 함수를 발견 했으므로 base64를 강제로 다운로드 할 수 있습니다.

+3

링크 전용 답변은 좋지 않습니다. 답안에 관련 코드를 제출하십시오. –

+0

아래로 엄지 손가락 관련 코드가 추가되었습니다. 링크가 너무 많은 텍스트의 벽입니다. 더 간단한 대답은 여기 코드 : http://stackoverflow.com/questions/14011021/how-to-download-a-base64-encoded-image – Andrew