Ben metin ve javascript jsPDF kütüphaneyi kullanan görüntülerle bir pdf oluşturmak bozuk. Ardından, bir e-posta göndermek için dosyayı sunucuya göndermek istiyorum. Sorun, sunucuya gelen dosyanın bozuk olmasıdır ve açılamıyor ya da pdf'deki görüntüleri göremiyorum.jsPDF - biter sunucuya pdf göndermek
Kodum: -: Ben de gibi diğer şeyler denedim Uncaught InvalidCharacterError: Failed to execute 'btoa' on 'Window': The string to be encoded contains characters outside of the Latin1 range.
var pdf = btoa(encodeURIComponent(doc.output()));
var data = new FormData();
data.append("data" , pdf);
var xhr = new XMLHttpRequest();
xhr.open('post', '/url', true);
xhr.send(data);
:
var pdf = btoa(doc.output());
bu hata veriyor
var pdf = btoa(encodeURIComponent(doc.output('blob')));
- Dosya açılamaz
var pdf = btoa(doc.output('blob'));
- Dosya açılamıyor
var pdf = btoa(unescape(encodeURIComponent(doc.output())));
- dosyanız açılacaktır ancak resimler
PS bazı gri çizgiler şunlardır:
$data = base64_decode($_POST['data']);
$fname = "test.pdf";
$file = fopen("pdf/" .$fname, 'w');
fwrite($file, $data);
fclose($file);
ÇÖZÜM:
js kodu:
Ben laravel 5. Sunucu kodunu kullanıyorumvar blob = doc.output('blob');
var fd = new FormData();
fd.append('data', blob);
$.ajax({
type: 'POST',
url: '/url',
data: fd,
processData: false,
contentType: false
}).done(function(data) {
console.log(data);
});
sunucu kodu:
if(!empty($_FILES['data'])){
move_uploaded_file(
$_FILES['data']['tmp_name'],
public_path() . '/test.pdf'
);
return "Pdf was successfully saved.";
} else {
return "No Data Sent";
}
Ben arka uçta hiçbir base64_decode ile bu çalıştı ama çalışmıyor .. ya hiç hata ama hiçbir dosya bulunmamaktadır. –
Bazı hata ayıklamalarından sonra, bloğu sunucuya gönderdiğimde, $ _POST ['data'] 'içinde hiçbir şeyim olmadığı anlaşılıyor. Basit bir dize gönderirsem işe yarıyor. Doc.output Gönderme ('blob') 'çalışmıyor .. –
Cevabınızdan çözüm bulundu, teşekkürler. Yayını onunla güncelledim. –