Êý¾Ý¶ÁÈ¡ÖÐ...
¡¡Äúµ±Ç°Î»Ö㺻ÝÖÝάÐÞ -> ÍøÂç-> asp¼¼Êõ½»Á÷ ÎÄÕÂËÑË÷: ¡¡
ASPÎÞ×é¼þÉÏ´«¡¤´ÓÔ­ÀíÆÊÎöµ½Êµ¼ùÒ»
×÷Õߣº×ªÔØ À´Ô´£º»ÝÖÝάÐÞ
ÈÕÆÚ: 2004-10-6
·Å´ó×ÖÌåÏÔʾ ËõС×ÖÌåÏÔʾ ´òÓ¡ÎÄÕÂ ÍÆ¼ö¸øÅóÓÑ
     ÎÞ×é¼þÉÏ´«Ò»Ö±ÊÇÀ§ÈÅ´ó¼ÒµÄÒ»¸öÎÊÌâ¡£ÆäʵԭÀíºÜ¼òµ¥£¬ºËÐľÍÊÇ·ÖÎö×Ö·û´®¡£µ«ÊÇ£¬Êµ¼Ê²Ù×÷ʱ£¬È´À§ÄÑÖØÖØ¡£ÆäÖеĹؼüÎÊÌ⻹ÊÇ´ó¼ÒÍùÍù¶ÔÔ­ÀíµÄÆÊÎö²»¹»ÉîÈ룬»òÕßÊÇÒòΪ¹ý³Ì¹ýÓÚ·±Ëö£¬µ¼ÖÂbug²»¶Ï¡£Ò»Ö±ÒÔÀ´£¬¶¼Ïë×öÒ»¸öÍêÉÆµÄÀý×Ó£¬Ö»²»¹ýÏëÏë¾ÍÍ·Í´£¬¼ÓÉÏûʱ¼ä£¨½è¿Ú£¬ºÇºÇ  £©£¬ËùÒÔûÓи¶ÖîÐж¯¡£ 

½ñÌì¾ÍÒ§Ò§ÑÀ£¬¸ø´ó¼ÒÌṩһ¸öÍêÕûµÄÎÞ×é¼þÉÏ´«µÄÀý×Ó¡£ÒòΪ±¾ÈËÄÍÐÔ²»ºÃ£¬ËùÒÔÔÛÃÇÒ»µãÒ»µãÀ´£¬·Ö¼¸ÌìÍê³É¡£Î´À´µÄ¼¸Ì죬ÎÒ»áÌìÌì¸üÐÂÕâ¸öÎĵµ£¬Õâ¸ö¹ý³ÌÒ²ÊÇ´ó¼ÒѧϰºÍÌá¸ßµÄ¹ý³Ì¡£ 

============================================================== 
µÚÒ»Ì죺ÈÏʶÎÒÃǵĽâÆÊ¶ÔÏ󡪡ªÊý¾Ý 

ÉÏ´«Îļþʱ£¬Ê×ÏÈÒªÖªµÀÎÒÃǵõ½µÄÊÇʲô¡£ÏÂÃæÊÇÒ»¸öÉÏ´«ÎļþµÄ±íµ¥£¬ÎÒÃǾʹÓËû¿ªÊ¼¡£ 
<form action="doupload.asp" method=post enctype="multipart/form-data"> 
 file1˵Ã÷:<input type=text name=file1_desc>   
          file1<input type=file name=file1><br> 
 file2˵Ã÷:<input type=text name=file2_desc>   
          file2<input type=file name=file2><br> 
 <input type=submit name=upload value=upload> 
</form> 

±íµ¥ÖÐenctype="multipart/form-data"µÄÒâ˼£¬ÊÇÉèÖÃ±íµ¥µÄMIME±àÂ롣ĬÈÏÇé¿ö£¬Õâ¸ö±àÂë¸ñʽÊÇapplication/x-www-form-urlencoded£¬²»ÄÜÓÃÓÚÎļþÉÏ´«£»Ö»ÓÐʹÓÃÁËmultipart/form-data£¬²ÅÄÜÍêÕûµÄ´«µÝÎļþÊý¾Ý£¬½øÐÐÏÂÃæµÄ²Ù×÷£¨ÓÐÐËȤµÄÅóÓÑ£¬¿ÉÒÔ×Ô¼ºÊÔÊÔ¿´Á½ÕßµÄÒìͬ¡£·½·¨ºÜ¼òµ¥£¬¾ÍÊǰÑÕâÒ»¾äÈ¥µô£©¡£ÏÖÔÚ£¬ÎÒÃÇÔÚ±íµ¥ÖзֱðÌîÈëÊý¾Ý£º 
file1µÄ˵Ã÷  D:\ÎҵĠͼƬ\BACK046.GIF 
file2µÄ˵Ã÷  D:\ÎҵĠͼƬ\BACK293.GIF 

ÕâÀïÓÃÁËÖÐÓ¢ÎÄ¡¢¿Õ¸ñ»ìÅÅ¡£Ä¿µÄÊÇÈÃÀý×Ó¸üÓÐÒ»°ãÐÔ¡£ÎÒÑ¡µÄÕâÁ½¸öͼƬ·Ö±ðÊÇ54ºÍ62×Ö½Ú¡£´óͼƬµÄÔ­ÀíÍêȫһÑù£¬²»¹ýСͼƬ×öÀý×Ó¸üºÏÊÊЩ£¬Ô­ÀíÈÝÒ×Õ¹ÏÖ¡£ 
ΪÁË¿´µ½ÎÒÃǵõ½µÄÊý¾Ý£¬ÔÚdoupload.aspÀÓÐÕ⼸ÐдúÂ룺 
<% 
formsize=request.totalbytes 
formdata=request.binaryread(formsize) 
response.BinaryWrite(formdata) 
%> 

ºÜ¼òµ¥£¬×÷ÓþÍÊÇ´ò³öÀ´´«¹ýÀ´µÄËùÓÐÊý¾Ý¡£Èç¹û²»ÊìϤ£¬Äã¿ÉÒÔÏÈÑо¿Ò»ÏÂrequestºÍresponse¶ÔÏóµÄÕâÁ½¸ö·½·¨¡£ 

Ìá½»±íµ¥£¬ÎÒÃÇÔÚieÀïÃæ²é¿´htmlÔ´£¬µÃµ½£º 
-----------------------------7d22131090458 
Content-Disposition: form-data; name="file1_desc" 

file1¦Ì??¦Ì?¡Â  
-----------------------------7d22131090458 
Content-Disposition: form-data; name="file1"; filename="D:\?¨°¦Ì? ¨ª???\BACK046.GIF" 
Content-Type: image/gif 

GIF89a¡®¨¬?f?f3?¨¬???¨¬!¨´,@?.¨¢?o ; 

-----------------------------7d22131090458 
Content-Disposition: form-data; name="file2_desc" 

file2¦Ì??¦Ì?¡Â 
-----------------------------7d22131090458 
Content-Disposition: form-data; name="file2"; filename="D:\?¨°¦Ì? ¨ª???\BACK293.GIF" 
Content-Type: image/gif 

GIF89a(¡®???YYY¨¬¨¬¨¬!¨´,(@L€?j(¡¤"j?N(34¡¥; 
-----------------------------7d22131090458 
Content-Disposition: form-data; name="upload" 

upload 
-----------------------------7d22131090458--  

²»Óû³ÒÉ£¬Õâ¾ÍÊÇÄã´ÓÉÏÒ»¸ö¡°¼òµ¥¡±±íµ¥´«¹ýÀ´µÄ¶«Î÷¡£ÏÖÔÚÏëÏë¿´£¬Ôõô¶Ô¸¶ÕâÒ»¶Ñ¶«Î÷£¿ÊDz»ÊÇ¿´ÉÏÈ¥ÓйæÂÉ£¬ÓÖ²»ÖªµÀ´ÓºÎÏÂÊÖ£¿Ã÷Ì죬ÔÛÃǾͷÖÎöÒ»ÏÂÕâ¶Ñ¡°Í¼Æ¬¡±£¬¿´¿´Ôõô·ÖÀë³öÎÒÃÇÒªµÄÄÚÈÝ¡£ 


============================================================== 
µÚ¶þÌ죺·Ö²ð³õ²½ 

˯Á˸öºÃ¾õ£¬´ó¼ÒÄÔ×ÓÇåÐѶàÁ˰ɣ¿½ñÌìÖÐÎç³ÔµÄ»ð¹ø£¬°¢É­ÄÉvs.Ìú¸çҲû¿´Í꣬ÏÖÔÚÒ»ÄÔ×Ó´óÓÍ¡£¡£¡£   
OK£¬ÔÛÃǼÌÐøÑо¿Õâ¸ö¿ÝÔïµÄÎÊÌâ¡£Ê×ÏÈ£¬ÒªÕÒ³ö¹æÂÉ¡£¿´ÉÏÈ¥ËÆºõºÜ¼òµ¥£¬¾ÍÊÇÓà
-----------------------------7d22131090458 
×ö·Ö¸ô£¬ÕâÑù£¬Ã¿Ò»¸öÎı¾µ¥ÔªÀ¶¼ÊÇ 
Content-Disposition: form-data; name="±íµ¥ÓòµÄÃû×Ö"; 

±íµ¥ÓòµÄÄÚÈÝ 

¶øÃ¿Ò»¸öÎļþµ¥ÔªÀ¶¼ÊÇ 
Content-Disposition: form-data; name="±íµ¥ÓòµÄÃû×Ö"; filename="Îļþȫ·¾¶" 
Content-Type: ÎļþÀàÐÍ 

ÎļþµÄ¶þ½øÖÆÄÚÈÝ 

ÄÇô£¬ÊDz»ÊÇÖ±½ÓÓà
split(formdata,"-----------------------------7d22131090458") 
¾Í¿ÉÒԵõ½¸÷¸öµ¥ÔªÁËÄØ£¿´ð°¸ÊÇ·ñ¶¨µÄ¡£Ê×ÏÈ£¬formdata²»ÊÇ×Ö·û´®¶øÊǶþ½øÖÆ´®£¬²»ÄÜÓÃsplitµÄ·½·¨£»Æä´Î£¬ÕâÀïµÄ7d22131090458²¢²»¹Ì¶¨£¬Ã¿´Î¶¼»áÓб仯£¬²¢²»ÊʺÏ×ö·Ö¸ô·û¡£ËùÒÔ£¬Ó¦¸ÃÓÃÒ»¸ö¸ü±£Ïյİ취¡£Ï뵽û£¿ºÜ¼òµ¥¡ª¡ª¾ÍÓÃformdataµÄµÚÒ»ÐÐ×ö·Ö¸ô·û¡£Ö»ÒªÓÃinstrbº¯ÊýµÃµ½»»ÐзûµÄλÖã¬È»ºóÓÃleftb»òmidbº¯Êý½ØÈ¡Êý¾Ý¾ÍÐÐÁË¡£ÎÒÃǶ¯ÊÖÊÔÊÔ£º 
<% 
¡¯ ¶þ½øÖƵĻسµ<return> 
bncrlf=chrB(13) & chrB(10) 

¡¯ µÃµ½formdata 
formsize=request.totalbytes 
formdata=request.binaryread(formsize) 

¡¯ µÃµ½·Ö¸ô·û 
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1) 

¡¯ ¿´¿´¶Ô²»¶Ô£¿ 
response.BinaryWrite(divider) 
%> 

ÔËÐС£¡£¡£³É¹¦ÁË£¡µÃµ½ÁËÐèÒªµÄdivider¡£×¢Ò⣬ÕâÀïµÄ×Ö·û´®º¯Êý¶¼ÊÇÕë¶Ô¶þ½øÖÆÊý¾Ý²Ù×÷µÄ£¬ËùÒÔ£¬ÓõÄÊÇËûÃǵĶþ½øÖư棬¼ÓÁË¡°b¡±£¨binaryµÄÊ××Öĸ£©¡ª¡ªinstrb£¬leftb£¨ÒÔºó¿ÉÄÜ»¹³öÏÖrightb£¬midb£¬lenb¡£¡£µÈµÈ£©¡£±Ï¾¹£¬formdataÊÇÓá°binaryread()¡±µÃµ½µÄÂï¡£ºÃÁË£¬Óеķָô·û£¬¾Í¿ÉÒԵõ½Êý¾ÝÁË¡£ÎÒÃÇ´Ó¼òµ¥µÄ¿ªÊ¼£¬ÏÈÄõÚÒ»¸öµ¥Ôª³öÀ´¿´¿´£¬Ä¿±êÊǵõ½±íµ¥ÓòÃû³ÆºÍÊý¾Ý¡£ 
<% 
¡¯ ÕâÊǻسµ<return> 
bncrlf=chrB(13) & chrB(10) 

¡¯ µÃµ½Êý¾Ý 
formsize=request.totalbytes 
formdata=request.binaryread(formsize) 

¡¯ µÃµ½divider£¬·Ö¸ô·û 
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1) 

¡¯ ÆðʼλÖà
startpos = instrb(formdata,divider)+lenb(divider)+lenb(bncrlf) 
¡¯ ÖÕֹλÖã¬´ÓÆðʼλÖÿªÊ¼µ½ÏÂÒ»¸ödivider 
endpos = instrb(startpos, formdata, divider)-lenb(bncrlf) 
part1 = midb(formdata, startpos, endpos-startpos) 
response.BinaryWrite(part1) 
%> 

ÕâÒ»¶ÎÓÐ×¢ÊÍ£¬ÏàÐÅ´ó¼ÒûÎÊÌâ¡£Èç¹û¶ÔÕâЩº¯Êý²»Á˽⣬¿ÉÒÔµ½http://www.2yup.com/asp/referrence/index.aspÏÂÔØmsdn²Î¿¼¿´¿´vbscriptµÄº¯ÊýÓ÷¨£¬¶ÔÌá¸ßˮƽÓкܴó°ïÖú¡£ 
ÕâʱºòµÃµ½µÄ½á¹û¿ÉÒÔͨ¹ý²é¿´Éú³ÉµÄhtmlÔ´µÄ·½Ê½¿´µ½£º 
Content-Disposition: form-data; name="file1_desc" 

file1µÄ˵Ã÷ 

ºÃÁË£¬Àë³É¹¦ÓÖ½øÒ»²½£¡   
ÏÂÀ´Ö»Òª·Ö±ð¶ÁÈ¡part1Àïname="ºÍµÚÒ»¸ö¡°Ë«ÒýºÅ+»Ø³µ¡±Ö®¼äµÄÄÚÈݾͿÉÒԵõ½±íµ¥ÓòµÄÃû³Æ£»¶ÁÈ¡Á¬ÐøÁ½¸ö»Ø³µÖ®ºóµÄÄÚÈݾͿÉÒԵõ½±íµ¥ÓòµÄÖµÁË¡£ÏÂÃæÒ»¶Î˳Àí³ÉÕ£º 
<% 
¡¯ Õâ¾ÍÊÇname=" 
const_nameis=chrb(110)&chrb(97)&chrb(109)&chrb(101)&chrb(61)&chrb(34) 
¡¯ ÕâÊǻسµ<return> 
bncrlf=chrB(13) & chrB(10) 

¡¯ µÃµ½Êý¾Ý 
formsize=request.totalbytes 
formdata=request.binaryread(formsize) 

¡¯ µÃµ½divider£¬·Ö¸ô·û 
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1) 

¡¯ ÆðʼλÖà
startpos = instrb(formdata,divider)+lenb(divider)+lenb(bncrlf) 
¡¯ ÖÕֹλÖã¬´ÓÆðʼλÖÿªÊ¼µ½ÏÂÒ»¸ödivider 
endpos = instrb(startpos, formdata, divider)-lenb(bncrlf) 
part1 = midb(formdata, startpos, endpos-startpos) 

¡¯ µÃµ½±íµ¥ÓòÃû³Æ£¬¾ÍÊÇ<input type=sometype name=somename>ÀïµÄsomename¡£ 
fldname = midb(part1,_ 
              instrb(part1, const_nameis)+lenb(const_nameis),_ 
              instrb(part1, bncrlf)-instrb(part1,const_nameis)-lenb(const_nameis)-1) 
¡¯ µÃµ½±íµ¥ÓòµÄÖµ 
fldvalue = midb(part1,_ 
               instrb(part1, bncrlf&bncrlf)+lenb(bncrlf&bncrlf),_ 
               lenb(part1)-instrb(part1, bncrlf&bncrlf)+lenb(bncrlf&bncrlf)) 

¡¯ ¼ì²éһϣ¿¿ÉÒÔÿ´Î´ò¿ªÒ»¸ö×¢ÊÍ£¬·Ö±ð¼ì²é¡£ 
¡¯response.binarywrite(fldname) 
¡¯response.binarywrite(fldvalue) 
%> 

Ö´ÐÐһϣ¿ºÇºÇ£¬Ã»ÎÊÌâÀ²£¬·Ö±ð´ò¿ª×¢ÊÍ£¬»áÔÚIEÀï¿´µ½¡°file1_desc¡±ºÍ¡°file1µÄ˵Ã÷¡±¡£ 
µ±È»£¬ÕâÊǵõ½Îı¾µ¥ÔªµÄ·½·¨£¬²»¹ý¿´¿´ÉϱߵÄԭʼÊý¾Ý¾ÍÖªµÀ£¬µÃµ½Îļþµ¥Ôª·½·¨¿ÉÒÔ˵ÊÇ»ù±¾Ïàͬ£¬Ö»²»¹ý£º 
1¡£ÐèÒª¶îÍâµÃµ½filename=""ÀïµÄÖµ£¬Ò²¾ÍÊÇÎļþȫ·¾¶£» 
2¡£ÐèÒª¶îÍâµÃµ½Content-Type: ºó±ßµÄÖµ£¬Ò²¾ÍÊÇÎļþµÄÀàÐÍ¡£ 
Õâ¸ö¹¤×÷¾ÍÊÇÌåÁ¦ÀͶ¯ÁË£¬ÏàÐÅ´ó¼ÒûÎÊÌâ¡£ÏÖÔÚ¸ü´óµÄ¾«Á¦Ó¦¸Ã·ÅÔÚ£ºÔõôµÃµ½ËùÓеĶÎÂäÄÚÈÝ£¿ÏëÀ´Ó¦¸ÃÊÇijÖÖÐÎʽµÄÑ­»·£¬µ«ÊÇ£¬¾ßÌåÔõô×ö£¿»¹ÓУ¬ÔõôÑù×éÖ¯µÃµ½µÄ¶«Î÷£¬²Å²»ÏÔµÃÁèÂÒ£¿ 

ºÇºÇ£¬²»ÔçÁË£¬Õâ¸ö¾ÍÊÇÔÛ½ñÌìÍíÉÏÒª×öµÄÃÎÁË¡£Ã÷ÌìÀ´£¬ÔÛ¾ÍÒ»Æð½â¾öÕâ¸öÎÊÌâ¡£¡£¡£¡£ 
ÎÄÕÂÒ³Êý£º[1] 
°ïÖúÄãÎÒËû£º¡¡1.ÎÒÓÐÎÊÌâÇë½Ì 2.ÎÒҪͶ¸å>>>
¸ü¶àÏà¹Ø×ÊÁÏËÑË÷£º
ÈȵãÎÄÕÂ
×îÐÂÎÄÕÂ
Ïà¹ØÎÄÕÂ
°æÈ¨ÉêÃ÷£º³ý²¿·ÖÌØ±ðÉùÃ÷²»Òª×ªÔØ£¬»òÕßÊÚȨ±¾Õ¾¶À¼Ò²¥·¢µÄÎÄÕÂÍ⣬´ó¼Ò¿ÉÒÔ×ÔÓÉ×ªÔØ±¾Õ¾µÄÔ­´´ÎÄÕ£¬µ«Ô­×÷ÕߺÍÀ´×Ô±¾Õ¾µÄÁ´½Ó±ØÐë±£Áô£¨·Ç±¾Õ¾Ô­´´µÄ£¬°´ÕÕÔ­À´×ÔÒ»½Ú£¬×ÔÐÐÁ´½Ó£©¡£ÎÄÕ°æÈ¨¹é±¾Õ¾ºÍ×÷Õß¹²ÓС£
×ªÔØÒªÇó£º×ªÔØÖ®Í¼Æ¬¡¢Îļþ£¬Á´½ÓÇë²»ÒªµÁÁ´µ½±¾Õ¾£¬ÇÒ²»×¼´òÉϸ÷×ÔÕ¾µãµÄˮӡ£¬Ò಻ÄÜĨȥ±¾Õ¾Ë®Ó¡¡£
ÌØ±ð×¢Ò⣺±¾Õ¾ËùÓÐ×ªÔØÎÄÕÂÑÔÂÛ²»´ú±í±¾Õ¾¹Ûµã£¬±¾Õ¾ËùÌṩµÄÉãÓ°ÕÕÆ¬£¬²å»­£¬Éè¼Æ×÷Æ·£¬ÈçÐèʹÓã¬ÇëÓëÔ­×÷ÕßÁªÏµ£¬°æÈ¨¹éÔ­×÷ÕßËùÓС£
·¢±íÆÀÂÛ¡¡ ´òÓ¡¡¡ ˢР¡¡ÍƼö¸øÅóÓÑ¡¡ ·µ»Ø¶¥²¿ ¡¡¹Ø±Õ

ÍøÉÏ´óÃû£º