TMP против PDF в BLOB - PullRequest
       1

TMP против PDF в BLOB

1 голос
/ 15 января 2020

У меня есть форма html, которая вставляет файл в базу данных mysql как большой двоичный объект. Для изображений это работает довольно хорошо, но есть проблема для PDF-файлов. ниже приведена функция, использующая

public function insertBlob($filePath, $mime) {
        $blob = fopen($filePath, 'rb');

        $sql = "INSERT INTO files(mime,data) VALUES(:mime,:data)";
        $stmt = $this->pdo->prepare($sql);

        $stmt->bindParam(':mime', $mime);
        $stmt->bindParam(':data', $blob, PDO::PARAM_LOB);

        return $stmt->execute();
    }

. Теперь, когда я использую вышеуказанную функцию, предоставляя локальный полный путь, такой как $blobObj->insertBlob("C:\Users\User\Downloads\WEST.pdf","application/pdf");, файл PDF можно извлечь и просмотреть в chrome. Но когда я указываю путь к tmp, который я получаю из $ FILES ['myfile'] [tmp_name], файл типа

if(isset($_POST["save"])){
    $blob= $_FILES["attachment"]["tmp_name"];
    $type = $_FILES["attachment"]["type"];
    var_dump($_FILES);
    // test insert object
    $blobObj->insertBlob($blob, $type);

}

загруженный pdf не может быть извлечен и отображен в chrome , chrome говорит, что файл не поддерживается . Что мне здесь не хватает? Ваша помощь будет высоко оценена

1 Ответ

0 голосов
/ 15 января 2020

Если ваши данные находятся в Blob, вам необходимо закодировать их с помощью base64_encode ().

Используйте это для отображения вашего контента

<object data="data:application/pdf;base64,<?php echo base64_encode(data) ?>" type="application/pdf" 
  style="height:200px;width:60%"></object>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...