2014-12-06 20 views
5

Để bắt đầu với JS không phải là một trong những điểm mạnh của tôi. Tôi đã cố gắng trong vài ngày qua để chỉnh sửa hàm JS này để làm cho nó tải xuống hình ảnh base64. Chức năng này làm gì, khi nút tải xuống được nhấp, mở một cửa sổ mới có hình ảnh trên đó. Người dùng sau đó phải nhấp chuột phải và lưu hình ảnh. Tôi đang cố gắng tải xuống hình ảnh thay vì nhấp chuột phải và ‘lưu dưới dạng’.tải xuống hình ảnh base64

Các dataurl sản base4 png string (data: image/jpeg; base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQ .........)

tôi đã cố gắng sử dụng vì nó đã được đề xuất trong chủ đề khác nhưng điều đó không làm việc.

Mọi đề xuất đều được hoan nghênh. Cảm ơn.

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) 
} 

Trả lời

0

Bạn có thể chỉ định một loại MIME khác nhau chứ không phải là image/jpeg để trình duyệt không cố gắng để mở hình ảnh nguyên bản:

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

Điều này sẽ buộc các tập tin để tải về, nhưng tôi nhận thấy trong một số cấu hình trình duyệt có thể tự động lưu bằng tên tệp mặc định và vì trình duyệt không biết loại tệp thực, người dùng sẽ chỉ định đúng loại tệp. Rất tiếc, lược đồ URI dữ liệu không cho phép tên tệp được đề xuất.

Khám phá Using HTML5/Javascript to generate and save a file để biết thêm các giải pháp khả thi. Đặt cược tốt nhất của bạn, tùy thuộc vào yêu cầu của bạn, có thể là đi với một giải pháp dựa trên Flash như Downloadify.

5

Cuối cùng! Tôi đã nhận nó để làm việc. Đối với bất cứ ai phải đối mặt với cùng một vấn đề tôi tìm thấy một chức năng ở đây http://danml.com/download.html sẽ cho phép bạn tải xuống base64.

+3

Câu trả lời chỉ liên kết không tốt. Vui lòng mang theo mã có liên quan vào câu trả lời của bạn. –

+0

ngón tay cái xuống mã bổ sung liên quan. liên kết là quá nhiều bức tường văn bản. câu trả lời đơn giản hơn với mã ở đây: http://stackoverflow.com/questions/14011021/how-to-download-a-base64-encoded-image – Andrew

Các vấn đề liên quan