PHPÎļþÉÏ´«Ô´Âë·ÖÎö(RFC1867)
ÎļþÉÏ´«,Ò»°ã·ÖΪÁ©ÖÖ·½Ê½FTPºÍHTTP, ¶ÔÓÚÎÒÃǵĻ¥ÁªÍøÓ¦ÓÃÀ´Ëµ: FTPÉÏ´«ËäÈ»´«ÊäÎȶ¨, µ«ÊÇÒ×ÓÃÐԺͰ²È«ÐÔ¶¼ÊǸöÎÊÌâ. Äã×ܲ»ÖÁÓÚÔÚÓû§ÒªÉÏ´«Í·ÏñµÄʱºò¸æËßÓû§”Çë´ò¿ªFTP¿Í»§¶Ë,ÉÏ´«Îļþµ½http://www.laruence.com/uploads/ÖÐ, ²¢ÒÔ2dk433423l.jpgÃüÃû”°É?
¶ø»ùÓÚHTTPµÄÉÏ´«,Ïà¶ÔÀ´ËµÒ×ÓÃÐԺͰ²È«ÐÔÉϾͱÈFTPÒªÔöÇ¿Á˺ܶà. ¿ÉÒÔÓ¦ÓõÄÉÏ´«·½Ê½ÓÐPUT, WEBDAV, ºÍRFC1867ÈýÖÖ, ±¾ÎĽ«·ÖÎöÔÚPHPÖÐ,ÊÇÈçºÎ»ùÓÚRFC1867ʵÏÖÎļþÉÏ´«µÄ.
RFC1867
RCF1867ÊÇForm-based File Upload in HTML±ê×¼ÐÒé, RFC1867±ê×¼¶ÔHTML×ö³öÁËÁ½´¦Ð޸ģº
¡¡
1 ΪinputÔªËØµÄtypeÊôÐÔÔö¼ÓÁËÒ»¸öfileÑ¡Ïî¡£
2 input±ê¼Ç¿ÉÒÔ¾ßÓÐacceptÊôÐÔ£¬¸ÃÊôÐÔÄܹ»Ö¸¶¨¿É±»ÉÏ´«µÄÎļþÀàÐÍ»òÎļþ¸ñʽÁÐ±í¡£
¡¡¡¡
ÁíÍ⣬±¾±ê×¼»¹¶¨ÒåÁËÒ»ÖÖеÄmimeÀàÐÍ£ºmultipart/form-data£¬ÒÔ¼°µ±´¦ÀíÒ»¸ö´øÓÐenctype=”multipart/form-data” ²¢ÇÒ/»òº¬ÓÐ<input type=”file”>µÄ±ê¼ÇµÄ±íµ¥Ê±ËùÓ¦¸Ã²ÉÈ¡µÄÐÐΪ¡£
¡¡¡¡
¾ÙÀýÀ´Ëµ£¬µ±HTMLÏëÈÃÓû§Äܹ»ÉÏ´«Ò»¸ö»ò¸ü¶àµÄÎļþʱ£¬Ëû¿ÉÒÔÕâôд£º
<form enctype="multipart/form-data" action="upload.php" method=post>
Ñ¡ÔñÎļþ:
<input name="userfile" type="file">
ÎļþÃèÊö:
<input name="description" type="text">
<input type="submit" value="ÉÏ´«">
</form>
Õâ¸ö±íµ¥, ´ó¼ÒÒ»¶¨²»Ä°Éú, ¶ø¶ÔÓÚPHPÀ´Ëµ, Ëü×Ô¼ºÁíÍⶨÒåÁËÒ»¸öĬÈÏ±íµ¥ÔªËØMAX_FILE_SIZE, Óû§¿ÉÒÔͨ¹ýÕâ¸öÒþ²ØµÄ±íµ¥ÔªËØÀ´½¨ÒéPHP×î¶àÖ»ÈÝÐíÉÏ´«ÎļþµÄ´óС, ±ÈÈç¶ÔÓÚÉÏÃæµÄÀý×Ó, ÎÒÃÇÏ£ÍûÓû§ÉÏ´«µÄÎļþ²»ÄÜ´óÓÚ5000(5k)×Ö½Ú, ÄÇô¿ÉÒÔÈçÏÂд:
<form enctype="multipart/form-data" action="upload.php" method=post>
<input type="hidden" value="5000" name="MAX_FILE_SIZE"> <!--Îļþ´óС-->
Ñ¡ÔñÎļþ:
<input name="userfile" type="file">
ÎļþÃèÊö:
<input name="description" type="text">
<input type="submit" value="ÉÏ´«">
</form>
¹ÃÇÒ²»Ëµ, Õâ¸öMAX_FILE_SIZEÊǶàôµÄ²»¿É¿¿(ËùÒÔ»ùÓÚä¯ÀÀÆ÷µÄ¿ØÖÆ,¶¼ÊDz»¿É¿¿µÄ), µ¥´¿´ÓʵÏÖÀ´½², ÎÒ»áÂýÂý½éÉÜÕâ¸öMAX_FILE_SIZEÊÇÈçºÎÆð×÷ÓõÄ.
µ±Óû§Ñ¡ÔñÁËÒ»¸öÎļþ(laruence.txt), ²¢ÌîдºÃÎļþÃèÊö(”laruenceµÄ¸öÈ˽éÉÜ”), µã»÷ÉÏ´«ºó, ·¢ÉúÁËÊ²Ã´ÄØ?
±íµ¥Ìá½»
ÔÚÓÃ
Ïà¹ØÎĵµ£º
PHPÈ¡µÃ³É¹¦µÄÒ»¸öÖ÷ÒªÔÒòÖ®Ò»ÊÇËýÓµÓдóÁ¿µÄ¿ÉÓÃÀ©Õ¹¡£web¿ª·¢ÕßÎÞÂÛÓкÎÖÖÐèÇó£¬ÕâÖÖÐèÇó×îÓпÉÄÜÔÚPHP·¢ÐаüÀïÕÒµ½¡£PHP·¢Ðаü°üÀ¨Ö§³Ö¸÷ÖÖÊý¾Ý¿â£¬Í¼ÐÎÎļþ¸ñʽ£¬Ñ¹Ëõ£¬XML¼¼ÊõÀ©Õ¹ÔÚÄÚµÄÐí¶àÀ©Õ¹¡£
¡¡¡¡À©Õ¹APIµÄÒýÈëʹPHPÈ¡µÃÁ˾޴óµÄ½øÕ¹£¬À©Õ¹API»úÖÆÊ¹PHP¿ª·¢ÉçÇøºÜÈÝÒ׵Ŀª·¢³ö¼¸Ê®ÖÖÀ©Õ¹¡£¡£À©Õ¹Ö÷ÒªµÄ˼ÏëÊÇ ......
³ÌÐò´úÂë
<!--p
if(isset($_POST['md5'])){ //ÅжÏ$md5ÊÇ·ñÒÑÉèÖã¬Èç¹ûÉèÖÃÁËÔòÖ´ÐÐÒÔÏ´úÂë¡£
if(!is_numeric($_POST['time'])){ //Èç¹ûû»ñÈ¡µ½timeµÄÖµÔò½«timeµÄÖµÉèÖÃΪ30
$_POST['time'] = 30;
}
set_time_limit($_P ......
Apache °æ±¾£º 2.2
PHP °æ±¾£º5.2.11
EclipseÏÂÔØµØÖ·£ºhttp://downloads.zend.com/pdt/all-in-one/zend-eclipse-php-galileo-SR1-win32-x86.zip
½âѹºóÔËÐÐEclipse.exe
Ñ¡Ôñ¹¤×÷¿Õ¼ä
ÎÒÑ¡ÔñÁËE:\PHPworkspace
ÕâʱҪ²åÈëÒ»²½
´ò¿ªApacheµÄÅäÖÃÎļþhttpd.conf
²éÕÒ”DocumentRoot“
ÐÞ¸ÄdocumentrootµÄÖ ......
ÏîÄ¿½á¹¹ÈçÉÏ
´´½¨counter.txtÎļþ
´´½¨counter1.phpÎļþ
³õʼ»¯counter.txtÎļþÖеÄÄÚÈÝ
ÊäÈë“0”
counter1.phpÎļþ´úÂë
<?php
$fp = fopen("counter.txt","r");
if ($str1==false){
$str1 = 0;
}
$str1 = fgets($fp,10);
$str1++;
fclose($fp);
$fp = ......
±¾´ÓÓõÄÊÇZend Debugger
ÔÚµ÷ÊÔcounter1.phpµÄʱºò³öÏÖÁËÂÒÂë´íÎó
ÕÒµ½ÁËÎÊÌâµÄÔÒò
zend debuggerĬÈϵıàÂëΪutf-8
¶øphpµÄĬÈϱàÂ뷽ʽΪgbk
µ±³õÅäÖÃphp¿ª·¢»·¾³ÊÇΪÁ˲¿ÊðdiscuzÂÛ̳
ËùÒÔ¾ÍÉèÖóÉÁËgbk
Õâ±ãÊÇÔÒòÁË
ͳһһÏÂ
¶¼ÓÃutf-8
window-preferences-general-workspace
text-file-encoding: utf-8
......