Ok, Giả sử tôi có dữ liệu tài liệu được lưu ở đâu đó, hãy tự ý lấy this pdf.Tạo và cung cấp PDF Blob đúng cách qua Tệp HTML5 và API URL
Vấn đề # 1. Những gì tôi muốn làm là thực hiện một cuộc gọi AJAX đến URL này (vì tôi cần phải vượt qua một số tiêu đề xác thực và nó là tên miền chéo). Sau đó lấy dữ liệu được trả về, tạo một blob url cho nó, thêm một iFrame vào DOM và chỉ đạo src
đến địa chỉ blob.
Hiện nay mã của tôi trông như thế này:
$.ajax({
url:'http://www.grida.no/climate/ipcc_tar/wg1/pdf/tar-01.pdf'
}).done(function(data){
var file = new Blob([data], {type:'application/pdf'}),
url = URL.createObjectURL(file),
_iFrame = document.createElement('iframe');
_iFrame.setAttribute('src', url);
_iFrame.setAttribute('style', 'visibility:hidden;');
$('#someDiv').append(_iFrame);
});
Thật không may, tôi nhận được một 'Không thể Render PDF' trong iFrame.
Vấn đề # 2. Tôi muốn điều này dẫn đến lời nhắc tải xuống tệp. Bạn không chắc chắn làm thế nào để đảm bảo điều này cho rằng PDF sẽ tự nhiên chỉ hiển thị trong iFrame.
chuỗi dữ liệu bắt đầu như thế này: '% PDF-1,5 % 2504 0 obj <> endobj 2511 0 obj <>/Filter/FlateDecode/ID []/Chỉ mục [2504 10]/Thông tin 2503 0 R/Chiều dài 47/Trước 3720769/Roo t 2505 0 R/Kích thước 2514/Loại/XRef/W [1 2 0] >> dòng h bbd'b'9 ] x? abP | ... ' –
Chỉ cần thông tin cho bất kỳ ai. Kết thúc hoàn toàn làm việc xung quanh vấn đề này bởi vì nó dường như không thể. Tôi đã tạm thời phân phát các tệp trong 10 giây, chỉ một iframe đến url tùy ý của nó và xóa chúng sau khi tải xuống (không có xác thực nào khác ngoài cookie của trình duyệt). –