我一直在尋找網絡幾個星期了,無法找到解決我的問題。如何將圖像上傳到MySQL數據庫使用PHP/Flex
我正在使用Flex(front-end)
和PHP/MySql(Back-end)
處理Web應用程序。
現在我想讓用戶上傳圖片作爲他們的個人資料圖片...我上傳他們到服務器上的目錄。現在我的老闆「覺得」他們應該直接存儲到數據庫中,不僅存儲圖像的鏈接,而且存儲整個內容。
請幫助球員....我卡住了!
我一直在尋找網絡幾個星期了,無法找到解決我的問題。如何將圖像上傳到MySQL數據庫使用PHP/Flex
我正在使用Flex(front-end)
和PHP/MySql(Back-end)
處理Web應用程序。
現在我想讓用戶上傳圖片作爲他們的個人資料圖片...我上傳他們到服務器上的目錄。現在我的老闆「覺得」他們應該直接存儲到數據庫中,不僅存儲圖像的鏈接,而且存儲整個內容。
請幫助球員....我卡住了!
所有在您從上傳文件的形式首先,你應該使用以下標籤:
enctype="multipart/form-data"
還需要指定該字段爲下列之一:
TINYBLOB ,BLOB ,MEDIUMBLOB ,LONGBLOB
Finaly修改此代碼爲您的數據庫,並會做:)
<?php
if(isset($_POST['upload']) && $_FILES['userfile']['size'] > 0)
{
$fileName = $_FILES['userfile']['name'];
$tmpName = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
$fp = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);
if(!get_magic_quotes_gpc())
{
$fileName = addslashes($fileName);
}
$query = "INSERT INTO upload (name, size, type, content) ".
"VALUES ('$fileName', '$fileSize', '$fileType', '$content')";
mysql_query($query) or die('Error, query failed');
}
?>
謝謝@Saber,這是有幫助的...我只需要調用flex。謝謝你... –
不客氣:) –
通常,最好將圖像存儲在文件系統上(速度和大小)。爲此,您可以將圖像存儲在諸如「images/profiles/{userID} .jpg」之類的位置。如果您確實想要將圖像存儲在數據庫中,只需將列類型設置爲blob
並在其中插入圖像內容。詳細描述將數據存儲在mysql數據庫中的好文章描述爲here。
考慮** **不這樣做。在數據庫中存儲經常使用的圖像存在很多缺陷。例如 - 「緩存」。瀏覽器不會緩存名爲「image.php?id = 5423」的圖像。然後當然還有數據庫的大小問題。如果圖像很大,您將創建一個大型數據庫,該數據庫的運行速度也會變慢,然後直接從文件系統調用圖像。 – Peon
是的Dainis我的確考慮過......我之前使用的是文件系統,現在我的老闆希望它被存儲在數據庫中。 –
如果你想保護你的圖片不被竊取,你應該考慮這個問題的唯一原因。但即使如此,還是有更好的解決方案。我建議你收集所有有關在DB中存儲圖像的事實,並向你的上司證明,這樣的舉動總體上是一個嚴重的錯誤和錯誤。 – Peon