file_put_contents создает пустой файл PDF с правильным количеством страниц - PullRequest
0 голосов
/ 24 января 2019

Я хочу создать файл pdf на моем сервере, отправляя контент через вызов API.

Что я делаю:

Создает запрос к стороннему API, используя xhr, и получает двоичный ответ, подобный приведенному ниже:

%PDF-1.4
%ª«¬­
1 0 obj
<<
/Title (Resume)
/Author (LinkedIn)
/Subject (Resume generated from profile)
/Producer (Apache FOP Version 2.2)
/CreationDate (D:20190124111323Z)
>>
endobj
2 0 obj
<<
  /N 3
  /Length 3 0 R
  /Filter /FlateDecode
>>

После этого я создаюобъект с этим содержимым делает JSON.stringify для объекта и отправляет его на мой сервер через запрос API POST

На сервере я жду запроса, получаю от него content и выполняю с ним file_put_contentsданные.

В результате создается файл с правильным количеством страниц PDF, но он пуст.В чем может быть проблема?

ЗАПРОС AJAX:

//This request is to the third party api which returns the response
//as shown above and is available in content variable

_this.loadFile((content) => {

    var data = {};
    data.type = 'application/pdf';
    data.ext = 'pdf';
    data.content = content;

    $.ajax({
        url: api_url + '/files',
        type: 'POST',
        data: JSON.stringify(data),
        contentType: "application/json",
        success: function(response) {
            alert('Done');
        },
        error: function(response) {
            alert('Error');
        }
    });
});

ОБРАБОТКА ЗАПРОСА API

//Gets the posted data in $data variable
//Content is correct all values are correct

$fileName = 'file-tmp-' . time() . $data['ext'];
$filePath = 'data/' . $fileName;
$content = $resume['content'];
file_put_contents($filePath, $content);

После того, как этот файл создан, и я могупросмотреть его, есть правильное количество страниц для PDF, и если я пытаюсь просмотреть файл в редакторе, он показывает содержимое, запрошенное от стороннего API.

Кроме того, содержимое файла, загруженного через веб-сайт третьей стороны и API сторонней стороны, является одинаковым.Но непосредственно загруженный файл имеет содержимое, видимое на его страницах, тогда как тот, который я создал на сервере, показывает пустые страницы.Оба файла PDF открываются читателями без ошибок.

Что я делаю не так?

...