Php BLOB中的TMP与PDF
我有一个html表单,它将文件作为blob插入mysql数据库。对于图像来说,它的工作相当顺利,但对于PDF来说,这是一个挑战。下面是我使用的函数Php BLOB中的TMP与PDF,php,html,mysql,forms,pdo,Php,Html,Mysql,Forms,Pdo,我有一个html表单,它将文件作为blob插入mysql数据库。对于图像来说,它的工作相当顺利,但对于PDF来说,这是一个挑战。下面是我使用的函数 public function insertBlob($filePath, $mime) { $blob = fopen($filePath, 'rb'); $sql = "INSERT INTO files(mime,data) VALUES(:mime,:data)"; $stmt = $this
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浏览器中调回并查看。但是,当我提供从$FILES['myfile'][tmp_name]获取的tmp路径时,该文件如下
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表示不支持文件。我错过了什么?非常感谢您的帮助如果您的数据是Blob,您需要使用base64_encode()对数据进行编码
使用此选项可显示您的内容
<object data="data:application/pdf;base64,<?php echo base64_encode(data) ?>" type="application/pdf"
style="height:200px;width:60%"></object>
如果数据是Blob,则需要使用base64_encode()对数据进行编码
使用此选项可显示您的内容
<object data="data:application/pdf;base64,<?php echo base64_encode(data) ?>" type="application/pdf"
style="height:200px;width:60%"></object>
非常感谢,我正在寻找类似的东西,我希望我能用它来下载文件,非常感谢,我正在寻找类似的东西,我希望我能用它来下载文件,非常感谢