2012-06-12 16 views
1

我正在嘗試將圖像存儲到SQL數據庫中而不使用臨時文件。我不想使用臨時文件,因爲太多的文件可能會導致問題。我看到這個tutorial:但是它使用臨時文件,就像這個questionthis一樣。我有圖像作爲一個PHP資源,而不是一個文件。試圖把圖像的base64字符串也失敗了。我正在寫一個blob。感謝您的期待,任何幫助將不勝感激。PHP-如何在不使用臨時文件的情況下將圖像存儲到SQL數據庫中?

+2

我不確定PHP的體系結構是否合理,直接接收文件而不使用臨時目錄。 –

+0

@dystroy是正確的 - 文件需要去某個地方,一旦它關閉用戶的電腦,不是嗎?你可以使用'$ _FILES ['uploadedfile'] ['tmp_name']'文件,但是這樣做可能不會像你所能獲得的那樣重新保存。 –

+0

我希望該文件可以在sql數據庫中,而不是作爲臨時文件。 – jersam515

回答

2

輸出緩衝!

ob_start(); 
imagejpeg($image_resource); 
$image = ob_get_clean(); 

$像現在擁有你可以寫一個BLOB字段在MySQL數據庫的圖像數據。

+0

這是**輸出**緩衝:「當輸出緩衝處於活動狀態時,腳本(標題除外)不發送輸出,而是將輸出存儲在內部緩衝區中。」 –

+0

p.s.嘗試離開它24-48小時前選擇一個答案:) –

+0

我沒有故意選擇一個。現在修復。 – jersam515

1

PHP並非真正用於處理長時間任務或文件上傳。

這意味着它依靠Apache的文件上傳功能。

所以你必須像所有的例子一樣展示你:讓Apache在臨時目錄中處理上傳,並且只在將文件放入數據庫之後。

+0

好的,我會這樣做的,謝謝你幫助所有人,即使我想做的事情是不可能的/不可行的。 – jersam515

+0

儘管這對大多數語言來說都是一種很好的做法。好消息是Apache很擅長處理上傳。 –

相關問題