ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

14-2 ¸ê®Æ®w¹Ï¤ù¦s¨ú

14-2 ¸ê®Æ®w¹Ï¤ù¦s¨ú

14-2   ¸ê®Æ®w¹Ï¤ù¦s¨ú
¤£ª¾¹D¬°¤°»ò¡A¤j®a¦ü¥G¹ï©ó¦p¦ó±N¦p¤ùÀɮ׶ë¨ì¸ê®Æ®w«Ü·P¿³½ì¡I¦]¬°¤@¥¹±N¹Ï¤ùÀÉ©ñ¤J¸ê®Æ®w«á¡A¤£¶È¸ê®Æ®wªº­t¾áÅܪº«Ü­«¡A¦Ó¥B¡A­Y­n¹ï¹Ï¤ùÀÉ¥[¥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

Äæ¦ì¦WºÙ

¸ê®Æ«¬ºA

¸ê®Æªø«×

¤¹³\Null

»¡©ú

idno

tny

4

§_

¸ê®Æ§Ç¸¹(¦Û°Ê»¼¼W)

filename

varchar

50

¬O

ÀɮצWºÙ

filesize

int

11

¬O

Àɮפj¤p

filetype

varchar

50

¬O

ÀÉ®×Ãþ«¬

filepic

text

16

¬O

Àɮפº®e





¹Ï14-6 ¡umyimage¡v¸ê®ÆªíÄæ¦ì³W¹º¡C
©ñ¸m¹Ï¤ùÀɮפº®eªºÄæ¦ì¡ufilepic¡v¡A¨ä¸ê®Æ«¬§O¥i¥H¬OBLOB©ÎText¡Kµ¥¡A¥u­n¥i©ñ¸m¤j«¬¤G¶i¨î¸ê®ÆªºÃþ«¬¬Ò¥i¡A¦b¥»¨Ò¤¤¡Aµ§ªÌ¿ï¾Ü¨Ï¥ÎText¸ê®Æ«¬§O¡C
¤ß¦w¡A¥­¦w   
µoªí¥ô¦óµL·N¸qªº·PÁ©ÎÄé¤ô¤å³¹¤@«ß¬å,¬Ã±¤±b¸¹,½Ð¸Ô¾\ª©³W!!

¥»½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
PIC.sql (769 Bytes)

¥H¤U¬O¤W¶Ç¹Ï¤ùÀɮתººô­¶¤º®e¡Aµ§ªÌÀ³¸Ó¤£¥Î¦h°µ¸ÑÄÀ¤F§a¡I
upload_pic.php
  1. <HTML>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=big5">
  4. <title>¹Ï¤ùÀɮפW¶Ç</title>
  5. </head>
  6. <BODY>
  7. <H3>¹Ï¤ùÀɮפW¶Ç:(¦s¤J¸ê®Æ®w)<HR></H3>

  8. <Form Action="mygetfile_pic.php" Method="POST"
  9. Enctype="multipart/form-data">
  10. <Input Type="File" Name="upfile" ><br>
  11. <Input Type="Submit" value=" ¶}©l¤W¶Ç ">
  12. </Form>

  13. </BODY></HTML>
½Æ»s¥N½X

¹Ï14-7  ¿ï©w­n¦s¤J¸ê®Æ®wªº¹Ï¤ùÀÉ¡C
¤ß¦w¡A¥­¦w   
µoªí¥ô¦óµL·N¸qªº·PÁ©ÎÄé¤ô¤å³¹¤@«ß¬å,¬Ã±¤±b¸¹,½Ð¸Ô¾\ª©³W!!

TOP

³B²z¤W¶Çªº¹Ï¤ùÀɮסG
¤W¶ÇÀɮתº°ò¦³B²z¤j®aªº²M·¡¤F¡A²Ä¤@­Ó­«ÂI¬O¦p¦óŪ¨ú¹Ï¤ùÀɮפºªº¸ê®Æ¡A­nŪ¨ú¹Ï¤ùÀɮ׸ê®Æ¡A­º¥ýªº¨Ï¥ÎÀɮ׳B²z¨ç¼Æ¸s¡Gfopen()¡Bfread()¡Bfilesize()¡Bfclose()µ¥¨ç¼Æ¡G
  1. //¶}±Ò¹Ï¤ùÀÉ
  2. $file = fopen($_FILES["upfile"]["tmp_name"], "rb");
  3. // Ū¤J¹Ï¤ùÀɸê®Æ
  4. $fileContents = fread($file, filesize($_FILES["upfile"]["tmp_name"]));
  5. //Ãö³¬¹Ï¤ùÀÉ
  6. fclose($file);
  7. ²Ä¤G­Ó­«ÂI¬O¡GŪ¨ú¥X¨Óªº¹Ï¤ù¸ê®Æ¥²¶·¨Ï¥Îbase64_encode()¨ç¼Æ¥[¥H½s½X¡G
  8. // ¹Ï¤ùÀɮ׸ê®Æ½s½X
  9.   $fileContents = base64_encode($fileContents);
½Æ»s¥N½X
½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
  1. //³sµ²MySQL Server
  2. $dbnum=mysql_connect("local","root","12345a");
  3. //¿ï¨ú¸ê®Æ®w
  4. mysql_select_db("pic");
  5. //²Õ¦X¬d¸ß¦r¦ê
  6.         $SQLSTR="Insert into myimage (filename,filesize,filetype,filepic) values('"
  7.                   . $_FILES["upfile"]["name"] . "',"
  8.                   . $_FILES["upfile"]["size"] . ",'"
  9.                   . $_FILES["upfile"]["type"] . "','"
  10.                   . $fileContents . "')";
½Æ»s¥N½X
§O§Ñ¤FÁÙ­nÀˬd¤@¤U¤W¶Çªº¹Ï¤ùÀɮפj¤p¬O§_¬°0¡A¤£µM¥i¬O·|µo¥Í¿ù»~³á¡I
mygetfile_pic.php
  1. <HTML>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=big5">
  4. <title>¹Ï¤ùÀɮפW¶Ç</title>
  5. </head><BODY><H3>¹ÏÀɦs¤J¬ÛÃö¸ê°T¡G<HR></H3>

  6. <?
  7.       echo "<BLOCKQUOTE>";
  8.       echo "ÀɮצWºÙ¡G" . $_FILES["upfile"]["name"] . "<BR>";
  9.       echo "Àɮפj¤p¡G" . $_FILES["upfile"]["size"] . "<BR>";
  10.       echo "ÀÉ®×Ãþ«¬¡G" . $_FILES["upfile"]["type"] . "<BR>";
  11.       echo "¼È¦sÀɦW¡G" . $_FILES["upfile"]["tmp_name"] . "<BR>";
  12.       if ( $_FILES["upfile"]["size"] > 0 )
  13.         {
  14.          //¶}±Ò¹Ï¤ùÀÉ
  15.          $file = fopen($_FILES["upfile"]["tmp_name"], "rb");
  16.          // Ū¤J¹Ï¤ùÀɸê®Æ
  17.          $fileContents = fread($file, filesize($_FILES["upfile"]["tmp_name"]));
  18.          //Ãö³¬¹Ï¤ùÀÉ
  19.          fclose($file);

  20.          // ¹Ï¤ùÀɮ׸ê®Æ½s½X
  21.          $fileContents = base64_encode($fileContents);

  22.          //³sµ²MySQL Server
  23.          $dbnum=mysql_connect("127.0.0.1","sa","12345");
  24.          //¿ï¨ú¸ê®Æ®w
  25.          mysql_select_db("pic");
  26.          //²Õ¦X¬d¸ß¦r¦ê
  27.          $SQLSTR="Insert into myimage (filename,filesize,filetype,filepic) values('"
  28.                   . $_FILES["upfile"]["name"] . "',"
  29.                   . $_FILES["upfile"]["size"] . ",'"
  30.                   . $_FILES["upfile"]["type"] . "','"
  31.                   . $fileContents . "')";
  32.          //±N¹Ï¤ùÀɮ׸ê®Æ¼g¤J¸ê®Æ®w
  33.          if(!mysql_query($SQLSTR)==0)
  34.            {
  35.             echo "±z©Ò¤W¶ÇªºÀɮפwÀx¦s¶i¤J¸ê®Æ®w<a href=\"showpic.php?filename="
  36.                  . $_FILES["upfile"]["name"] . "\">"
  37.                  . $_FILES["upfile"]["name"] . "</a>";
  38.            }
  39.          else
  40.            {
  41.             echo "±z©Ò¤W¶ÇªºÀÉ®×µLªkÀx¦s¶i¤J¸ê®Æ®w";
  42.            }
  43.         }
  44.       else
  45.         {
  46.          echo "¹Ï¤ù¤W¶Ç¥¢±Ñ";
  47.         }
  48.       echo "</BLOCKQUOTE>";
  49. ?>

  50. <HR></BODY></HTML>
½Æ»s¥N½X
¬°¤F¯àÅý¨Ï¥ÎªÌ¯à¬Ý¨ì¦Û¤v¤W¶Çªº¹Ï¤ùÀÉ¡A§Ú­ÌÁÙ¥[¤F¤@­Ó¶W³sµ²³sµ²¨ì¹Ï¤ùÅã¥Üºô­¶¥h¡Aµ{¦¡½X38~40¦æ¡A¶WÃìµ²ªº¡ufilename¡v°Ñ¼Æ´N¬O¥Î¨Ó´£¨ú¹Ï¤ùªº¨Ì¾Ú¡C

¹Ï14-8  Åã¥Ü¤W¶Çªº¹Ï¤ùÀɮ׸ê°T¡C
¤ß¦w¡A¥­¦w   
µoªí¥ô¦óµL·N¸qªº·PÁ©ÎÄé¤ô¤å³¹¤@«ß¬å,¬Ã±¤±b¸¹,½Ð¸Ô¾\ª©³W!!

TOP

ÂsÄý¸ê®Æ®wªº¹Ï¤ùÀɮסG
­nÅã¥Ü¹Ï¤ù²Ä¤@­«­nªº¬O³]©wºô­¶ªºMIMEÃþ«¬¡A¤]´N¬Oºô­¶Åã¥Üªº¸ê®Æ®æ¦¡¬°¦ó¡A¦p§Ú­Ì¤W¶Çªº¹Ï¤ùÀɮ׬°*.gif¡A«h§Ú­Ì­n³]©wºô­¶¸ê®Æªº®æ¦¡Ãþ«¬¬°¡uimage/gif¡v¡A­n¦p¦ó³]©wºô­¶¸ê®Æªº®æ¦¡Ãþ«¬¡H¨Ï¥Îheader()´N¦æ¤F¡G
  1. //³]©wºô­¶¸ê®Æ®æ¦¡
  2. header("Content-Type: ®æ¦¡Ãþ«¬");
½Æ»s¥N½X
¥i¬O¡A§Ú­Ì«çª¾¹D­nÅã¥Ü¥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¡A­n¥ý¥Îbase64_decode()¨ç¼Æ±N¸ê®ÆÁÙ­ì¡I
showpic.php
  1. <?
  2. $dbnum=mysql_connect("localhost","root","12345a");
  3. //¿ï¨ú¸ê®Æ®w
  4. mssql_select_db("pic");
  5. //²Õ¦X¬d¸ß¦r¦ê
  6. $SQLSTR="select filepic,filetype from myimage where filename='"
  7.          . $_REQUEST["filename"] . "'";
  8. //
  9. $cur=mysql_query($SQLSTR);
  10. //¨ú¥X¸ê®Æ
  11. $data=mysql_fetch_array( $cur );

  12. //³]©wºô­¶¸ê®Æ®æ¦¡
  13. header("Content-Type: $data[1]");
  14. // ¿é¥X¹Ï¤ù¸ê®Æ
  15. echo base64_decode($data[0]);
  16. ?>
½Æ»s¥N½X

¹Ï14-9    ¿é¥X¸ê®Æ®wªº¹Ï¤ùÀÉ¡C
¤ß¦w¡A¥­¦w   
µoªí¥ô¦óµL·N¸qªº·PÁ©ÎÄé¤ô¤å³¹¤@«ß¬å,¬Ã±¤±b¸¹,½Ð¸Ô¾\ª©³W!!

TOP

½Ð°Ý¤@¤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><
ÁÂÁÂ^^

TOP

¤p§Ì¤W¶Ç·Ó¤ù¦¨¥\¡A¸ê®Æ®w¦³Åª¨ì·Ó¤ù¡A¦ý¦b«eºÝÅã¥Ü­è­è¦s¨ì¸ê®Æ®wªº·Ó¤ùÀ³¸Ó«ç»ò°µ©O¡HÁÂÁ¡I

TOP

¦³ÂI¥Í²¨¡A§¹¥þ»Ý­n§¹¾ã½d¨Ò¨Ó°Ñ¦Ò¢æ¢Ò

TOP

¤j¤j±z¦n,§Ú³Ìªñ¦b¼g¹Ï¤ù¤W¶Ç ´N¬d¨ì¤F±zªº¸ê®Æ
½Ð°Ý"³B²z¤W¶Çªº¹Ï¤ùÀÉ®×"¨ºùتºµ{¦¡½X­n¼g¦b­þ¤@­Ó­¶­±©O
¤p§Ì¥Ø«eªº°ÝÃD¬O¥i¥H¤W¶Ç¦ý¬O©Ò¤W¶ÇªºÀÉ®×µLªkÀx¦s¶i¤J¸ê®Æ®w~

TOP

        ÀR«ä¦Û¦b : ¡i¬O§_µo´§¤F¨}¯à¡H¡j¤H¶¡¹Ø©R¦]¬°µu¼È¡A¤~§óÅã±o¬Ã¶Q¡CÃø±o¨Ó¤@½ë¤H¶¡¡AÀ³°Ý¬O§_¬°¤H¶¡µo´§¤F¦Û¤vªº¨}¯à¡A¦Ó¤£­n¤@¨ý¨Dªø¹Ø¡C
ªð¦^¦Cªí ¤W¤@¥DÃD