如何將.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