我正在使用以下腳本來測試插入,然後讀取blob數據。從php插入/讀取blob數據
插入腳本:
include('session.php');
$provider =$_POST['provider_id'];
$trd_period =$_POST['trading_period_month'];
$pdf_statement =stream_get_contents(fopen($_FILES['pdf_statement']['tmp_name'], 'rb'));
$pdf_statement_clean=addslashes($pdf_statement);
$insert="update rd_provider_statement
set pdf_statement='".$pdf_statement_clean."', creation_user_id='SCO'
where provider_id='".$provider."' and trading_period_month='".$trd_period."'";
mysql_query($insert);
mysql_query("COMMIT");
echo mysql_error();
下載腳本:
include('session.php');
//Gather Post Variables
$TP_Month =$_POST["trading_period_month"];
$provider =$_POST["provider_id"];
$TP_format =substr($TP_Month, 0, 7);
//Download Statement
$sql_qry="select *
from rd_provider_statement
where provider='".$provider."' and trading_period_month='".$TP_Month."'";
$sql_err_no=sql_select($sql_qry,$sql_res,$sql_row_count,$sql_err,$sql_uerr);
$row = mysql_fetch_assoc($sql_res);
$bytes =stripslashes($row['pdf_statement']);
header("Content-type: application/pdf");
header('Content-disposition: attachment; filename="'.$provider.'statement'.$TP_format.'"');
print $bytes;
然而,當文件被下載了它不能,理由是它不支持的格式打開。我在另一頁上使用腳本的基礎從數據庫中下載blob數據,但是這裏插入到數據庫中的操作是通過mysql過程完成的,而不是PHP。我認爲這是我的插入腳本導致問題。
在數據庫中存儲文件不是一個好主意:http://stackoverflow.com/questions/3748/storing-images-in-db-yea-or-nay – 2012-07-12 06:30:29
因此,如果您正在託管,並且沒有其他方式在文件系統上存儲/檢索文件,那麼您將如何訪問,存儲和檢索文件?有時他們已經得到了嚴格的PHP/MySQL交易,或者他們限制/過濾了您的文件上傳或其他內容。 – 2013-02-05 11:54:07