Board logo

標題: php upload 圖片到mysql [打印本頁]

作者: fatbunchan    時間: 2008-9-24 12:49     標題: php upload 圖片到mysql

呢個係我係網上copy 落黎0既

<html>
<head>
<title>Upload File To MySQL Database</title>
<meta http-equiv="Content-Type" c>
<style type="text/css">
<!--
.box {

font-family: Arial, Helvetica, sans-serif;

font-size: 12px;

border: 1px solid #000000;
}
-->
</style>
</head>

<body>
<?
if(isset($_POST['upload']))
{

$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);

$content = addslashes($content);

fclose($fp);


if(!get_magic_quotes_gpc())

{

$fileName = addslashes($fileName);

}



include 'library/config.php';

include 'library/opendb.php';


$query = "INSERT INTO upload (name, size, type, content ) VALUES ('$fileName', '$fileSize', '$fileType', '$content')";

mysql_query($query) or die('Error, query failed');



include 'library/closedb.php';


echo "<br>File $fileName uploaded<br>";
}
?>
<form action="" method="post" enctype="multipart/form-data" name="uploadform">
  <table width="350" border="0" cellpadding="1" cellspacing="1" class="box">
    <tr>
      <td width="246"><input type="hidden" name="MAX_FILE_SIZE" value="2000000"><input name="userfile" type="file" class="box" id="userfile">

</td>
      <td width="80"><input name="upload" type="submit" class="box" id="upload" value="  Upload  "></td>
    </tr>
  </table>
</form>
</body>
</html>

點解我揀左 file 再click upload時佢會話我"Error query failed", 但係如果唔揀file click upload 佢就會upload 一個空白record 上sql 0既?

我唔係好識php, 請指教, 謝謝!
作者: hkjoey    時間: 2008-9-24 17:46

is_uploaded_file()  - 檢查上載既檔案正確性,返回true/false
作者: Puff    時間: 2008-9-25 22:26

$content 唔搵野 (like base64) encode 左先?
作者: MacMonster    時間: 2008-9-25 23:52

建議唔好擺張圖入MySQL, 用番File吧.
作者: hoho1986    時間: 2008-9-26 00:27

係可以張圖放入MYSQL,但真得不建議,會使MySQL運行得非常慢。
你是用怎麼column type
作者: ioptional    時間: 2008-9-26 06:38

原帖由 hoho1986 於 2008-9-26 00:27 發表
係可以張圖放入MYSQL,但真得不建議,會使MySQL運行得非常慢。
你是用怎麼column type

你 upload 左之後, 放係一個 Directory 入面, 而 MySQL 只係用黎記住個 PATH
作者: weyho    時間: 2008-9-26 08:00

原帖由 ioptional 於 2008-9-26 06:38 發表

你 upload 左之後, 放係一個 Directory 入面, 而 MySQL 只係用黎記住個 PATH


一般做法係咁, 但可能樓想BACKUP DB 時一次BACK晒, 以免忘記吧

好似係BOOL 定 BINRARY.  但樓上所說, 真的比較慢
作者: adrianmak    時間: 2008-9-26 09:26

提示: 作者被禁止或刪除 內容自動屏蔽
作者: hkjoey    時間: 2008-9-26 16:17

原帖由 adrianmak 於 2008-9-26 09:26 發表


對!!!!!!!!!
不懂的人才會將image 直接儲入db 入面

正確的做法是用個field 儲上傳image 的path
image 文件就係只簡單在server 上某個地方而已


MYSQL咁做確實唔可取..

我以前試過係MSSQL咁玩..
不過無咩大問題..
作者: sunhikari    時間: 2008-9-26 16:40

呢招的確係可以
但話比你聽,玩呢招係好晒時間
寫程式寫到嘔,而且仲要寫埋buffer page
但用db記path就會令program簡單d同埋db運作會無咁慢
作者: patrickit    時間: 2008-9-26 17:18

用db 記相片, 甚至其他binary, 未必冇用.
將files同db分開亦會做成保安及維護問題.
唔好一概而論.
(大把oracle都係咁用既)
作者: fatbunchan    時間: 2008-10-6 11:47

哦..
一般都認為唔好落mysql 好, 咁我再諗下點整先!
有問題再上黎問!

謝謝各位!
作者: ioptional    時間: 2008-10-6 15:13

原帖由 patrickit 於 2008-9-26 17:18 發表
用db 記相片, 甚至其他binary, 未必冇用.
將files同db分開亦會做成保安及維護問題.
唔好一概而論.
(大把oracle都係咁用既)

PHP 有 Pack 同 Unpack, 保安好用 Pack 加上你自己自知既 Pack Char 有一樣效果, 只係慢D但係對 DB 負擔低好多
作者: bibilubi    時間: 2008-10-10 12:43

搭單問下
JSP 點樣 UPLOAD FILE
自動命名

作者: fatbunchan    時間: 2008-10-11 16:19

再問下, 點可以當你delete 個record 時, upload 左0既圖片一齊delete 埋架, php 可以做到嗎?
作者: ioptional    時間: 2008-10-11 17:38

原帖由 fatbunchan 於 2008-10-11 16:19 發表
再問下, 點可以當你delete 個record 時, upload 左0既圖片一齊delete 埋架, php 可以做到嗎?

Get返個 Record unlink 左佢





歡迎光臨 電腦領域 HKEPC Hardware (https://h0.hkepc.com/forum/) Powered by Discuz! 7.2