Отправка сжатого содержимого PDF-файла со стороны клиента на внутренний сервер - PullRequest
0 голосов
/ 15 апреля 2020

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

В идеале я хочу, чтобы: -

  • Создание файла (PDF) на стороне клиента с содержимым файла, полученным ответом.
  • Прикрепите документ к элементу DOM загрузки файла.
  • Отправьте файл в бэкэнд.

Но это похоже на чтение / запись файла с содержимым на клиенте сторона (браузер) запрещена. Так что выше не может быть достигнуто. Я также попытался присоединить сжатое содержимое файла к элементу DOM и отправить его в бэкэнд с формданными данными, однако, когда я сохраняю файл с содержимым, полученным в бэкэнде, я нахожу файл поврежденным или не могу открыть.

Ниже приведен код для загрузки с сервера ilovepdf и загрузки на мой сервер.

function downloadPDF() {
  $.ajax({
    type: 'GET',
    headers: {
      'Authorization': 'Bearer ' + token
    },
    url: "https://" + server + "/v1/download/" + task,
    success: function(response) {
      var form = new FormData();
      form.append("file", response);
      $.ajax({
        type: 'POST',
        url: "/properties/compressed",
        processData: false,
        contentType: false,
        data: form,
        success: function(response) {
          console.log("sent to server")
        }
      });
    }
  });
}

Compressed file response received

1 Ответ

0 голосов
/ 16 апреля 2020

Вы можете сгенерировать PDF с вашего сервера, используя wicked_pdf gem и закодировав его в base64, вернуть закодированную строку base64 на клиентский сервер, и на своем клиентском сервере вы можете использовать этот код для загрузки PDF :

window.downloadPDF = function downloadPDF() {

    var dlnk = document.getElementById('dwnldLnk');
    dlnk.href = pdf; <this would be your return encoded string in response>

    dlnk.click();


    alert('toma');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...