Как сохранить сгенерированный javascript pdf файл в файловую систему моего сервера?

1

Я использую pdfmake для создания своего PDF файла, и, хотя он позволяет пользователю напрямую открывать PDF файл или загружать его на свой компьютер, я не уверен, как я буду генерировать PDF файл и сохранять его в своей файловой системе сервера.

Насколько я понимаю, существует множество мер безопасности, не позволяющих javascript сохранять данные в файл (ы), так что отправка его на мой php-сервер будет единственным выбором? и как я буду делать это?

Благодаря !

Теги:
pdfmake

1 ответ

1

(Непроверенные)
PHP:

<?
// pull the raw binary data from the POST array
$data = substr($_POST['data'], strpos($_POST['data'], ",") + 1);
// decode it
$decodedData = base64_decode($data);
// print out the raw data, 
echo ($decodedData);
$filename = "test.pdf";
// write the data out to the file
$fp = fopen($filename, 'wb');
fwrite($fp, $decodedData);
fclose($fp);
?>

JS:

var docDefinition = {
  content: 'This is an sample PDF printed with pdfMake'
};

pdfMake.createPdf(docDefinition).getBuffer(function(buffer) {
  var blob = new Blob([buffer]);

  var reader = new FileReader();
  // this function is triggered once a call to readAsDataURL returns
  reader.onload = function(event) {
    var fd = new FormData();
    fd.append('fname', 'test.pdf');
    fd.append('data', event.target.result);
    $.ajax({
      type: 'POST',
      url: 'upload.php', // Change to PHP filename
      data: fd,
      processData: false,
      contentType: false
    }).done(function(data) {
      // print the output from the upload.php script
      console.log(data);
    });
  };
  // trigger the read from the reader...
  reader.readAsDataURL(blob);
});

Загружать и получать код из Как загружать javascript blob? ,

  • 0
    На самом деле вы можете получить base64 непосредственно из pdfmake 'pdfMake.createPdf (docDefinition) .getBase64 (function (dataURL) {// сделать что-то}' '

Ещё вопросы

Сообщество Overcoder
Наверх
Меню