14-2 ¸ê®Æ®w¹Ï¤ù¦s¨ú
[color=darkred][size=4][b]14-2 ¸ê®Æ®w¹Ï¤ù¦s¨ú[/b][/size][/color]¤£ª¾¹D¬°¤°»ò¡A¤j®a¦ü¥G¹ï©ó¦p¦ó±N¦p¤ùÀÉ®×¶ë¨ì¸ê®Æ®w«Ü·P¿³½ì¡I¦]¬°¤@¥¹±N¹Ï¤ùÀÉ©ñ¤J¸ê®Æ®w«á¡A¤£¶È¸ê®Æ®wªºt¾áÅܪº«Ü«¡A¦Ó¥B¡AYn¹ï¹Ï¤ùÀÉ¥[¥H½s׬O«Ü§xÃøªº¡C
¬JµM¤j®a·Qª¾¹D¡Aµ§ªÌ´N¤¶²Ð¦p¦ó±N¹Ï¤ùÀɦs¤J¸ê®Æ®w§a¡I
¥»½d¨Ò±N¹Ï¤ùÀÉ¸ê®Æ«Ø¥ß©óMyQL¸ê®Æ®w¤¤¡A³oÓ¡u¹Ï¤ù¡v¸ê®Æ®w§ÚÌ©w¦W¬°¡upic¡v¡A¦Ó¦b¸ê®Æ®w¤¤¥Î¨Ó¹Ï¤ùÀÉ®×¸ê®Æªº¸ê®Æªí«h©w¦W¬°¡umyimage¡v¡C
¦b¡umyimage¡v¸ê®Æªí¤¤¡A§Ú̫إߤF¤ÓÄæ¦ì¡Gidno¡Bfilename¡Bfilesize¡Bfiletype¡Bfilepic¡A¨äÄæ¦ì³]©w»¡©ú¦p¤U¡G
[table]
[tr][td=1,1,88][p=30, 2, center][size=2][font=²Ó©úÅé]Äæ¦ì¦WºÙ[/font][color=white][/color][/size][/p][/td][td=1,1,81][p=30, 2, center][size=2][font=²Ó©úÅé]¸ê®Æ«¬ºA[/font][color=white][/color][/size][/p][/td][td=1,1,81][p=30, 2, center][size=2][font=²Ó©úÅé]¸ê®Æªø«×[/font][color=white][/color][/size][/p][/td][td=1,1,103][p=30, 2, center][size=2][font=²Ó©úÅé]¤¹³\[/font][color=white][font=Courier New]Null[/font][/color][/size][/p][/td][td=1,1,163][p=30, 2, center][size=2][font=²Ó©úÅé]»¡©ú[/font][color=white][/color][/size][/p][/td][/tr]
[tr][td=1,1,88][p=30, 2, left][font=Courier New][color=#000000][size=2]idno[/size][/color][/font][/p][/td][td=1,1,81][p=30, 2, left][font=Courier New][color=#000000][size=2]tny[/size][/color][/font][/p][/td][td=1,1,81][p=30, 2, center][font=Courier New][color=#000000][size=2]4[/size][/color][/font][/p][/td][td=1,1,103][p=30, 2, center][color=#000000][size=2][font=²Ó©úÅé]§_[/font][/size][/color][/p][/td][td=1,1,163][p=30, 2, left][color=#000000][size=2][font=²Ó©úÅé]¸ê®Æ§Ç¸¹[/font][font=Courier New]([/font][font=²Ó©úÅé]¦Û°Ê»¼¼W[/font][font=Courier New])[/font][/size][/color][/p][/td][/tr]
[tr][td=1,1,88][p=30, 2, left][font=Courier New][color=#000000][size=2]filename[/size][/color][/font][/p][/td][td=1,1,81][p=30, 2, left][font=Courier New][color=#000000][size=2]varchar[/size][/color][/font][/p][/td][td=1,1,81][p=30, 2, center][font=Courier New][color=#000000][size=2]50[/size][/color][/font][/p][/td][td=1,1,103][p=30, 2, center][color=#000000][size=2][font=²Ó©úÅé]¬O[/font][/size][/color][/p][/td][td=1,1,163][p=30, 2, left][color=#000000][size=2][font=²Ó©úÅé]ÀɮצWºÙ[/font][/size][/color][/p][/td][/tr]
[tr][td=1,1,88][p=30, 2, left][font=Courier New][color=#000000][size=2]filesize[/size][/color][/font][/p][/td][td=1,1,81][p=30, 2, left][font=Courier New][color=#000000][size=2]int[/size][/color][/font][/p][/td][td=1,1,81][p=30, 2, center][font=Courier New][color=#000000][size=2]11[/size][/color][/font][/p][/td][td=1,1,103][p=30, 2, center][color=#000000][size=2][font=²Ó©úÅé]¬O[/font][/size][/color][/p][/td][td=1,1,163][p=30, 2, left][color=#000000][size=2][font=²Ó©úÅé]Àɮפj¤p[/font][/size][/color][/p][/td][/tr]
[tr][td=1,1,88][p=30, 2, left][font=Courier New][color=#000000][size=2]filetype[/size][/color][/font][/p][/td][td=1,1,81][p=30, 2, left][font=Courier New][color=#000000][size=2]varchar[/size][/color][/font][/p][/td][td=1,1,81][p=30, 2, center][font=Courier New][color=#000000][size=2]50[/size][/color][/font][/p][/td][td=1,1,103][p=30, 2, center][color=#000000][size=2][font=²Ó©úÅé]¬O[/font][/size][/color][/p][/td][td=1,1,163][p=30, 2, left][color=#000000][size=2][font=²Ó©úÅé]ÀÉ®×Ãþ«¬[/font][/size][/color][/p][/td][/tr]
[tr][td=1,1,88][p=30, 2, left][font=Courier New][color=#000000][size=2]filepic[/size][/color][/font][/p][/td][td=1,1,81][p=30, 2, left][font=Courier New][color=#000000][size=2]text[/size][/color][/font][/p][/td][td=1,1,81][p=30, 2, center][font=Courier New][color=#000000][size=2]16[/size][/color][/font][/p][/td][td=1,1,103][p=30, 2, center][color=#000000][size=2][font=²Ó©úÅé]¬O[/font][/size][/color][/p][/td][td=1,1,163][p=30, 2, left][font=²Ó©úÅé][size=2][color=#000000]Àɮפº®e[/color][/size][/font][/p][/td][/tr]
[/table]
[attach]5849[/attach]
¹Ï14-6 ¡umyimage¡v¸ê®ÆªíÄæ¦ì³W¹º¡C
©ñ¸m¹Ï¤ùÀɮפº®eªºÄæ¦ì¡ufilepic¡v¡A¨ä¸ê®Æ«¬§O¥i¥H¬OBLOB©ÎText¡Kµ¥¡A¥un¥i©ñ¸m¤j«¬¤G¶i¨î¸ê®ÆªºÃþ«¬¬Ò¥i¡A¦b¥»¨Ò¤¤¡Aµ§ªÌ¿ï¾Ü¨Ï¥ÎText¸ê®Æ«¬§O¡C ¥»½d¨Ò¸ê®Æ®w¦WºÙ¬°¡uPIC¡v¡A¦b½d¨Ò¥úºÐ\DataBase¥Ø¿ý¤¤¦³¤@ÓMySQL¸ê®Æ®w¡uPIC¡v¡AÀɮצWºÙ¬°¡uPIC.sql¡v¡A½Ð±z±NÀɮ׽ƻs¨ì±zªºµwºÐ¸Ì¨Ã¨Ï¥ÎphpMyAdmin±N¨ä¸ü¤J¨ìMySQL Server¤¤¡A¥»½d¨Ò©Ò¨Ï¥Îªº¸ê®Æªí´N©ñ¸m¨ä¤¤¡A±z¥iª½±µ¥[¥H§Q¥Î¡C
[attach]5850[/attach]
¥H¤U¬O¤W¶Ç¹Ï¤ùÀɮתººô¶¤º®e¡Aµ§ªÌÀ³¸Ó¤£¥Î¦h°µ¸ÑÄÀ¤F§a¡I
upload_pic.php[code]<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>¹Ï¤ùÀɮפW¶Ç</title>
</head>
<BODY>
<H3>¹Ï¤ùÀɮפW¶Ç:(¦s¤J¸ê®Æ®w)<HR></H3>
<Form Action="mygetfile_pic.php" Method="POST"
Enctype="multipart/form-data">
<Input Type="File" Name="upfile" ><br>
<Input Type="Submit" value=" ¶}©l¤W¶Ç ">
</Form>
</BODY></HTML>[/code][attach]5851[/attach]
¹Ï14-7 ¿ï©wn¦s¤J¸ê®Æ®wªº¹Ï¤ùÀÉ¡C [color=RoyalBlue][size=3][b]³B²z¤W¶Çªº¹Ï¤ùÀɮסG[/b][/size][/color]
¤W¶ÇÀɮתº°ò¦³B²z¤j®aªº²M·¡¤F¡A²Ä¤@Ó«ÂI¬O¦p¦óŪ¨ú¹Ï¤ùÀɮפºªº¸ê®Æ¡AnŪ¨ú¹Ï¤ùÀÉ®×¸ê®Æ¡Aº¥ýªº¨Ï¥ÎÀɮ׳B²z¨ç¼Æ¸s¡Gfopen()¡Bfread()¡Bfilesize()¡Bfclose()µ¥¨ç¼Æ¡G[code]//¶}±Ò¹Ï¤ùÀÉ
$file = fopen($_FILES["upfile"]["tmp_name"], "rb");
// Ū¤J¹Ï¤ùÀÉ¸ê®Æ
$fileContents = fread($file, filesize($_FILES["upfile"]["tmp_name"]));
//Ãö³¬¹Ï¤ùÀÉ
fclose($file);
²Ä¤GÓ«ÂI¬O¡GŪ¨ú¥X¨Óªº¹Ï¤ù¸ê®Æ¥²¶·¨Ï¥Îbase64_encode()¨ç¼Æ¥[¥H½s½X¡G
// ¹Ï¤ùÀÉ®×¸ê®Æ½s½X
$fileContents = base64_encode($fileContents);[/code]½s½Xªº¥Øªº¦b½T«O¹Ï¤ù¸ê®Æªº¥¿½T©Ê¡C
¨º¦p¦ó±N¤W¶ÇÀɮתº¸ê°T¼g¤J¸ê®Æ®w¡H¤£»Ý¯S§O³B²z¡A¨Ì·Ó§Ṳ́§«e¾Ç¹Lªº¡A§Q¥ÎInsert Into©R¥O¼g¤J§Y¥i¡G[code]//³sµ²MySQL Server
$dbnum=mysql_connect("local","root","12345a");
//¿ï¨ú¸ê®Æ®w
mysql_select_db("pic");
//²Õ¦X¬d¸ß¦r¦ê
$SQLSTR="Insert into myimage (filename,filesize,filetype,filepic) values('"
. $_FILES["upfile"]["name"] . "',"
. $_FILES["upfile"]["size"] . ",'"
. $_FILES["upfile"]["type"] . "','"
. $fileContents . "')";[/code]§O§Ñ¤FÁÙnÀˬd¤@¤U¤W¶Çªº¹Ï¤ùÀɮפj¤p¬O§_¬°0¡A¤£µM¥i¬O·|µo¥Í¿ù»~³á¡I
mygetfile_pic.php[code]<HTML>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=big5">
<title>¹Ï¤ùÀɮפW¶Ç</title>
</head><BODY><H3>¹ÏÀɦs¤J¬ÛÃö¸ê°T¡G<HR></H3>
<?
echo "<BLOCKQUOTE>";
echo "ÀɮצWºÙ¡G" . $_FILES["upfile"]["name"] . "<BR>";
echo "Àɮפj¤p¡G" . $_FILES["upfile"]["size"] . "<BR>";
echo "ÀÉ®×Ãþ«¬¡G" . $_FILES["upfile"]["type"] . "<BR>";
echo "¼È¦sÀɦW¡G" . $_FILES["upfile"]["tmp_name"] . "<BR>";
if ( $_FILES["upfile"]["size"] > 0 )
{
//¶}±Ò¹Ï¤ùÀÉ
$file = fopen($_FILES["upfile"]["tmp_name"], "rb");
// Ū¤J¹Ï¤ùÀÉ¸ê®Æ
$fileContents = fread($file, filesize($_FILES["upfile"]["tmp_name"]));
//Ãö³¬¹Ï¤ùÀÉ
fclose($file);
// ¹Ï¤ùÀÉ®×¸ê®Æ½s½X
$fileContents = base64_encode($fileContents);
//³sµ²MySQL Server
$dbnum=mysql_connect("127.0.0.1","sa","12345");
//¿ï¨ú¸ê®Æ®w
mysql_select_db("pic");
//²Õ¦X¬d¸ß¦r¦ê
$SQLSTR="Insert into myimage (filename,filesize,filetype,filepic) values('"
. $_FILES["upfile"]["name"] . "',"
. $_FILES["upfile"]["size"] . ",'"
. $_FILES["upfile"]["type"] . "','"
. $fileContents . "')";
//±N¹Ï¤ùÀÉ®×¸ê®Æ¼g¤J¸ê®Æ®w
if(!mysql_query($SQLSTR)==0)
{
echo "±z©Ò¤W¶ÇªºÀɮפwÀx¦s¶i¤J¸ê®Æ®w<a href=\"showpic.php?filename="
. $_FILES["upfile"]["name"] . "\">"
. $_FILES["upfile"]["name"] . "</a>";
}
else
{
echo "±z©Ò¤W¶ÇªºÀÉ®×µLªkÀx¦s¶i¤J¸ê®Æ®w";
}
}
else
{
echo "¹Ï¤ù¤W¶Ç¥¢±Ñ";
}
echo "</BLOCKQUOTE>";
?>
<HR></BODY></HTML>[/code]¬°¤F¯àÅý¨Ï¥ÎªÌ¯à¬Ý¨ì¦Û¤v¤W¶Çªº¹Ï¤ùÀÉ¡A§ÚÌÁÙ¥[¤F¤@Ó¶W³sµ²³sµ²¨ì¹Ï¤ùÅã¥Üºô¶¥h¡Aµ{¦¡½X38~40¦æ¡A¶WÃìµ²ªº¡ufilename¡v°Ñ¼Æ´N¬O¥Î¨Ó´£¨ú¹Ï¤ùªº¨Ì¾Ú¡C
[attach]5852[/attach]
¹Ï14-8 Åã¥Ü¤W¶Çªº¹Ï¤ùÀɮ׸ê°T¡C [color=RoyalBlue][size=3][b]ÂsÄý¸ê®Æ®wªº¹Ï¤ùÀɮסG[/b][/size][/color]
nÅã¥Ü¹Ï¤ù²Ä¤@«nªº¬O³]©wºô¶ªºMIMEÃþ«¬¡A¤]´N¬Oºô¶Åã¥Üªº¸ê®Æ®æ¦¡¬°¦ó¡A¦p§Ṳ́W¶Çªº¹Ï¤ùÀɮ׬°*.gif¡A«h§ÚÌn³]©wºô¶¸ê®Æªº®æ¦¡Ãþ«¬¬°¡uimage/gif¡v¡An¦p¦ó³]©wºô¶¸ê®Æªº®æ¦¡Ãþ«¬¡H¨Ï¥Îheader()´N¦æ¤F¡G[code]//³]©wºô¶¸ê®Æ®æ¦¡
header("Content-Type: ®æ¦¡Ãþ«¬");[/code]¥i¬O¡A§Ú̫窾¹DnÅã¥Ü¥X¨Óªº¹Ï¤ù¸ê®Æ¬Oþ¤@ºØ¸ê®ÆÃþ«¬¡H§O¾á¤ß¡I§Ú̦b±N¹Ï¤ùÀɮצs¤J¸ê®Æ®w®É¤£¬O¦³¤@ÓÄæ¦ì¡ufiletype¡v¡A¨ä¤º®e¤£¬O´N¬O¤W¶ÇÀɮתº¸ê®ÆÃþ«¬¡]$_FILES["upfile"]["type"]¡^¶Ü¡Hª½±µ®³¨Ó¥Î´N¬O¤F¡I
²Ä¤GÓnª`·Nªº¬O¡G·í§Ú̱N¹Ï¤ùÀɮפº®e¦s¤J¸ê®Æ®w®É¡A¨Ï¥Îbase64_encode()¨ç¼Æ¥[¥H½s½X¡A¦]¦¹¡A¦b¨ú¥X¹Ï¤ùÀÉ¸ê®Æ«á¡AÅã¥Ü¹Ï¤ùÀɤ§«e¡An¥ý¥Îbase64_decode()¨ç¼Æ±N¸ê®ÆÁÙì¡I
showpic.php[code]<?
$dbnum=mysql_connect("localhost","root","12345a");
//¿ï¨ú¸ê®Æ®w
mssql_select_db("pic");
//²Õ¦X¬d¸ß¦r¦ê
$SQLSTR="select filepic,filetype from myimage where filename='"
. $_REQUEST["filename"] . "'";
//
$cur=mysql_query($SQLSTR);
//¨ú¥X¸ê®Æ
$data=mysql_fetch_array( $cur );
//³]©wºô¶¸ê®Æ®æ¦¡
header("Content-Type: $data[1]");
// ¿é¥X¹Ï¤ù¸ê®Æ
echo base64_decode($data[0]);
?>[/code][attach]5853[/attach]
¹Ï14-9 ¿é¥X¸ê®Æ®wªº¹Ï¤ùÀÉ¡C ½Ð°Ý¤@¤U
§Ú°Ñ¦Ò¤F¤j¤jªºµ{¦¡½X µM«á¦Û¤v¸Õ¸Õ¬Ý
¥i¬O·|¥X²{³oºØ¿ù»~(Undefined index: upfile)
¿ù»~¬O¦bmygetfile_pic ²Ä9¦æ¨ì²Ä12¦æ
³£¬O¬Û¦Pªº¿ù»~
©ó¬O§Ú¦³¦^¥hÀˬdupload_picªº²Ä11¦æ
¬Ý¤W¥h¬O¨S¦³°ÝÃD
¤£ª¾¹D¤j¤j¯à¤£¯àÀ°§Ú¸Ñ¨M°ÝÃD><
ÁÂÁÂ^^ ¤p§Ì¤W¶Ç·Ó¤ù¦¨¥\¡A¸ê®Æ®w¦³Åª¨ì·Ó¤ù¡A¦ý¦b«eºÝÅã¥Üèè¦s¨ì¸ê®Æ®wªº·Ó¤ùÀ³¸Ó«ç»ò°µ©O¡HÁÂÁ¡I ¦³ÂI¥Í²¨¡A§¹¥þ»Ýn§¹¾ã½d¨Ò¨Ó°Ñ¦Ò¢æ¢Ò ¤j¤j±z¦n,§Ú³Ìªñ¦b¼g¹Ï¤ù¤W¶Ç ´N¬d¨ì¤F±zªº¸ê®Æ
½Ð°Ý"³B²z¤W¶Çªº¹Ï¤ùÀÉ®×"¨ºùتºµ{¦¡½Xn¼g¦bþ¤@Ó¶±©O
¤p§Ì¥Ø«eªº°ÝÃD¬O¥i¥H¤W¶Ç¦ý¬O©Ò¤W¶ÇªºÀÉ®×µLªkÀx¦s¶i¤J¸ê®Æ®w~
¶:
[1]