如何将.pdf文件作为BLOB从PHP存储到MySQL中?如何将.pdf文件作为使用PHP的BLOB存储到MySQL中?
13
A
回答
8
假设一个整数ID的表结构和BLOB数据列,并假设MySQL的功能正在使用与数据库的接口,你也许可以做这样的事情:
$result = mysql_query 'INSERT INTO table (
data
) VALUES (
\'' . mysql_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf')) . '\'
);';
一句警告尽管如此,将数据库存储在数据库中通常不被认为是最好的想法,因为它可能导致表膨胀,并且存在许多与其相关的其他问题。更好的方法是将文件移动到文件系统中的某处,并将路径存储到数据库中而不是文件本身。
此外,使用mysql_ *函数调用是不鼓励的,因为这些方法被有效地弃用,并且没有真正用比4.x更新的MySQL版本构建。您应该切换到mysqli或PDO。
UPDATE:mysql_ *功能弃用在PHP 5.x和是完全删除在PHP中7!您现在别无选择,只能切换到更现代的数据库抽象(MySQLI,PDO)。我已经决定离开上述完整的历史原因原来的答案,但实际上并不使用它
下面是如何在程序模式的mysqli做到这一点:
$result = mysqli_query ($db, 'INSERT INTO table (
data
) VALUES (
\'' . mysqli_real_escape_string (file_get_contents ('/path/to/the/file/to/store.pdf'), $db) . '\'
);');
做的理想的方式是用MySQLI/PDO编写语句。
-1
//Pour inserer :
$pdf = addslashes(file_get_contents($_FILES['inputname']['tmp_name']));
$filetype = addslashes($_FILES['inputname']['type']);//pour le test
$namepdf = addslashes($_FILES['inputname']['name']);
if (substr($filetype, 0, 11) == 'application'){
$mysqli->query("insert into tablepdf(pdf_nom,pdf)value('$namepdf','$pdf')");
}
//Pour afficher :
$row = $mysqli->query("SELECT * FROM tablepdf where id=(select max(id) from tablepdf)");
foreach($row as $result){
$file=$result['pdf'];
}
header('Content-type: application/pdf');
echo file_get_contents('data:application/pdf;base64,'.base64_encode($file));
相关问题
- 1. 将.txt文件作为Blob从ASP.Net存储到Mysql MVC3
- 2. 如何:使用C#将pdf文件存储并提取到mysql#
- 3. 如何将base64字符串存储在mySQL中作为BLOB
- 4. 邮编HTML/PDF,存储作为Blob
- 5. 如何使用PHP将Azure存储blob下载为本地文件?
- 6. 如何获取并播放存储为MySQL BLOB的WAV文件?
- 7. 将文件上传到Azure Blob存储
- 8. 使用web2py将BLOB保存到MySQL中
- 9. 如何获取Azure Blob存储的缩略图PDF文件
- 10. 保存PDF文件为BLOB的问题
- 11. php:将图像存储到Mysql blob中,好还是坏?
- 12. 如何使用PowerShell将文件从一个Blob存储容器移动到另一个Blob存储容器
- 13. 如何使用php将图像存储到MYSQL数据库中
- 14. 如何将存储在sqlite数据库中的文件转储为blob?
- 15. AppEngine - 使用HTTP将文件发送到Blob存储区
- 16. 如何将Azure Blob文件复制到Azure本地存储
- 17. 如何使用php制作.pdf文件?
- 18. 如何使用python插入/检索作为BLOB存储在MySQL数据库中的文件
- 19. 将JSON Blob存储在MySQL或S3中
- 20. 将.txt文件保存到Azure Blob存储中
- 21. 如何将blob作为使用javascript的文件进行POST?
- 22. 如何使用传统ASP将文件上传到Azure Blob存储?
- 23. 如何使用PHP将上传的swf文件存储在MySQL数据库中?
- 24. 如何提取在FoxPro表中存储为BLOB的文件?
- 25. 如何将存储在Blob中的数据用作视图?
- 26. 如何使用C#将pdf文件存储到/从SQLITE数据库中检索?
- 27. 如何将保存在indexedDB中的Blob转换为PDF文件并将其导出到用户机器?
- 28. 如何将pdf文件上传到MySql?
- 29. 作为blob存储在SQLite中的打开文件
- 30. 如何从url获取图片并将其保存在mysql中作为BLOB? php
我的php代码如下:$ fileSize = $ _FILES ['userfile'] ['size']; $ fileType = $ _FILES ['userfile'] ['type']; $ fp = fopen($ tmpName,'r'); $ content = fread($ fp,filesize($ tmpName)); (49,\“。$ esc。\”,0,$ esc = mysql_real_escape_string(file_get_contents($ fp)); $ query =“INSERT INTO table(id,data,Dealid)VALUES )“; – xcodemaddy 2011-01-27 09:24:05
[`mysqli_query()`](http://php.net/manual/en/mysqli.query.php)需要db连接并作为第一个参数。我从使用它的人身上看到了这个问答,作为可能的重复。应该更新它以提供正确的语法;这对于未来的访问者/新手来说,他们不知道它是如何工作的。 – 2017-04-01 14:46:56