Óô¿ASP´úÂëʵÏÖͼƬÉÏ´«²¢´æÈëÊý¾Ý¿âÖÐ 2000-07-06 00:00:00¡¤
Çë×÷ÕßÓëÎÒÃÇÁªÏµ¡¤yesky p>¡¡¡¡ÓãÁ£Ó£Ð±àÐ´ÍøÕ¾Ó¦ÓóÌÐòʱ¼ä³¤ÁË£¬ÄÑÃâ»áÓöµ½¸÷ʽ¸÷ÑùµÄÎÊÌ⣬ÆäÖÐ
¡¡¡¡¹ØÓÚÈçºÎÉÏ´«Îļþµ½·þÎñÆ÷¿ÖÅÂÊÇÓö¼û×î¶àµÄÎÊÌâÁË£¬ÓÈÆäÊÇÉÏ´«Í¼Æ¬£¬±ÈÈçÄãÏëÒªÔÚ×Ô¼ºµÄÉçÇøÀïÃæÊµÏÖÀàËÆÍøÒ×ÐéÄâÉçÇøÌṩµÄ¡°Ã¿ÈÕÒ»ÐÇ¡±µÄ¹¦ÄÜ£¬¾ÍÒªÌṩ¸øÍøÓÑÉÏ´«ÕÕÆ¬µÄ¹¦ÄÜ¡£ÉÏ´«Í¼Æ¬Îļþµ½·þÎñÆ÷¿ÉÒÔʹÓø÷ÖÖÃâ·ÑµÄÎļþÉÏ´«×é¼þ£¬Ê¹ÓÃÆðÀ´¹¦ÄÜËäÈ»ºÜÇ¿´ó£¬µ«ÊÇÓÉÓںܶàÇé¿öÏ£¬ÎÒÃÇÖ»ÄÜʹÓÃÃâ·ÑµÄÖ§³Ö£Á£Ó£ÐµÄ¿Õ¼ä»òÕß×âÓñðÈ˵ÄÐéÄâ¿Õ¼ä£¬¶ÔÓÚµÚÒ»ÖÖÇé¿ö£¬ÎÒÃǸù±¾¾ÍûÓпÉÄÜÀ´Ê¹ÓÃÎļþÉÏ´«×é¼þ£»ÖÁÓÚµÚ¶þÖÖÇé¿ö£¬ÎÒÃÇÒ²Òª¸¶³ö²»Éٵġ°Òø×Ó¡±²Å¿ÉÒÔ¡£³ý·ÇÄãÓµÓÐ×Ô¼ºµÄÐéÄâÖ÷»ú£¬Äã¾Í¿ÉÒÔËæ±ãµÄÔÚ·þÎñÆ÷ÉÏÃæ°²×°×Ô¼ºËùÐèÒªµÄ×é¼þ£¬ÕâÖÖÇé¿ö¶ÔÓÚ´ó¶àÊýÈËÀ´ËµÊÇ¿ÉÍû¶ø²»¿É¼°µÄ¡£ÄÇÎÒÃǾÍûÓа취ÁËÂ𣿺Ǻǣ¬´ð°¸Êǿ϶¨µÄ£¨µ±È»Êǿ϶¨µÄÁË£¬Òª²»È»ÎÒҲû·¨Ð´³öÕâÆªÎÄÕ°¡£©¡£ÏÂÃæ¾ÍÈÃÎÒÃÇÒ»ÆðÀ´Ê¹Óô¿£Á£Ó£Ð´úÂëÀ´ÊµÏÖͼƬµÄÉÏ´«ÒÔ¼°±£´æµ½Êý¾Ý¿âµÄ¹¦ÄÜ£¨Ë³±ãҲʵÏÖÏÔʾÊý¾Ý¿âÖеÄͼƬµ½ÍøÒ³ÉϵŦÄÜ£©¡£
¡¡¡¡Ê×ÏÈÎÒÃÇÏÈÀ´ÊìϤһϽ«ÒªÊ¹ÓõĶÔÏó·½·¨¡£ÎÒÃÇÓÃÀ´»ñÈ¡ÉÏÒ»¸öÒ³Ãæ´«µÝ¹ýÀ´µÄÊý¾ÝÒ»°ãÊÇʹÓÃRequest¶ÔÏó¡£Í¬ÑùµÄ£¬ÎÒÃÇÒ²¿ÉÒÔʹÓÃRequest¶ÔÏóÀ´»ñÈ¡ÉÏ´«ÉÏÀ´µÄÎļþÊý¾Ý£¬Ê¹Óõķ½·¨ÊÇRequest.BinaryRead()¡£¶øÎÒÃÇÒª´ÓÊý¾Ý¿âÖжÁ³öÀ´Í¼Æ¬µÄÊý¾ÝÏÔʾµ½ÍøÒ³ÉÏÃæÒªÓõ½µÄ·½·¨ÊÇ£º
¡¡¡¡Request.BinaryWrite()¡£ÔÚÎÒÃǵõ½ÁËͼƬµÄÊý¾Ý£¬Òª±£´æµ½Êý¾Ý¿âÖеÄʱºò£¬²»¿ÉÒÔÖ±½ÓʹÓÃInsertÓï¾ä¶ÔÊý¾Ý¿â½øÐвÙ×÷£¬¶øÊÇҪʹÓÃADOµÄAppendChunk·½·¨£¬Í¬ÑùµÄ£¬¶Á³öÊý¾Ý¿âÖеÄͼƬÊý¾Ý£¬ÒªÊ¹ÓÃGetChunk·½·¨¡£¸÷¸ö·½·¨µÄ¾ßÌåÓï·¨ÈçÏ£º
* Request.BinaryReadÓï·¨£º
variant = Request.BinaryRead(count)
²ÎÊý
variant
·µ»ØÖµ±£´æ×Å´Ó¿Í»§¶Ë¶ÁÈ¡µ½Êý¾Ý¡£
count
Ö¸Ã÷Òª´Ó¿Í»§¶Ë¶ÁÈ¡µÄÊý¾ÝÁ¿´óС£¬Õâ¸öֵСÓÚ»òÕßµÈÓÚʹÓ÷½·¨
Request.TotalBytesµÃµ½µÄÊý¾ÝÁ¿¡£
* Request.BinaryWriteÓï·¨£º
Request.BinaryWrite data
²ÎÊý
data
ҪдÈëµ½¿Í»§¶Ëä¯ÀÀÆ÷ÖеÄÊý¾Ý°ü¡£
* Request.TotalBytesÓï·¨£º
variant = Request.TotalBytes
²ÎÊý
variant
·µ»Ø´Ó¿Í»§¶Ë¶ÁÈ¡µ½Êý¾ÝÁ¿µÄ×Ö½ÚÊý¡£
* AppendChunkÓï·¨
½«Êý¾Ý×·¼Óµ½´óÐÍÎı¾¡¢¶þ½øÖÆÊý¾Ý Field »ò Parameter ¶ÔÏ
object.AppendChunk Data
²ÎÊý
object Field »ò Parameter ¶ÔÏó
Data ±äÌåÐÍ£¬°üº¬×·¼Óµ½¶ÔÏóÖеÄÊý¾Ý¡£
˵Ã÷
¡¡¡¡Ê¹Óà Field »ò Parameter ¶ÔÏóµÄ AppendChunk
·½·¨¿É½«³¤¶þ½øÖÆ»ò×Ö·ûÊý¾ÝÌîдµ½¶ÔÏóÖС£ÔÚϵͳÄÚ´æÓÐÏÞµÄÇé¿öÏ£¬¿ÉÒÔʹÓÃ
AppendChunk ·½·¨¶Ô³¤ÕûÐÍÖµ½øÐв¿·Ö¶ø·ÇÈ«²¿µÄ²Ù×÷¡£
* GetChunkÓï·¨
·µ»Ø´óÐÍÎı¾»ò¶þ½øÖÆÊý¾Ý Field ¶ÔÏóµÄÈ«²¿»ò²¿·ÖÄÚÈÝ ¡£
variable = field.GetChunk( Size )
·µ»ØÖµ
·µ»Ø±äÌåÐÍ¡£
²ÎÊý
Size ³¤ÕûÐͱí´ïʽ£¬µÈÓÚËùÒª¼ìË÷µÄ×Ö½Ú»ò×Ö·ûÊý¡£
˵Ã÷
¡¡¡¡Ê¹Óà Field ¶ÔÏóµÄ GetChunk
·½·¨¼ìË÷Æä²¿·Ö»òÈ«²¿³¤¶þ½øÖÆ»ò×Ö·ûÊý¾Ý¡£ÔÚϵͳÄÚ´æÓÐÏÞµÄÇé¿öÏ£¬¿ÉʹÓÃ
GetChunk ·½·¨´¦Àí²¿·Ö¶ø·ÇÈ«²¿µÄ³¤ÕûÐÍÖµ¡£
GetChunk µ÷Ó÷µ»ØµÄÊý¾Ý½«¸³¸ø¡°±äÁ¿¡±¡£Èç¹û Size
´óÓÚÊ£ÓàµÄÊý¾Ý£¬Ôò
GetChunk ½ö·µ»ØÊ£ÓàµÄÊý¾Ý¶øÎÞÐèÓÿհ×Ìî³ä¡°±äÁ¿¡±¡£Èç¹û×Ö¶ÎΪ¿Õ£¬Ôò
GetChunk ·½·¨·µ»Ø Null¡£
¡¡¡¡Ã¿¸öºóÐøµÄ GetChunk µ÷Óý«¼ìË÷´Óǰһ´Î GetChunk
µ÷ÓÃÍ£Ö¹´¦¿ªÊ¼µÄÊý¾Ý¡£µ«ÊÇ£¬Èç¹û´ÓÒ»¸ö×ֶμìË÷Êý¾ÝÈ»ºóÔÚµ±Ç°¼Ç¼ÖÐÉèÖûò¶ÁÈ¡ÁíÒ»¸ö×ֶεÄÖµ£¬ADO
½«ÈÏΪÒÑ´ÓµÚÒ»¸ö×Ö¶ÎÖмìË÷³öÊý¾Ý¡£Èç¹ûÔÚµÚÒ»¸ö×Ö¶ÎÉÏÔٴε÷ÓÃ
GetChunk ·½·¨£¬ADO ½«°Ñµ÷ÓýâÊÍΪÐ嵀 GetChunk
²Ù×÷²¢´Ó¼Ç¼µÄÆðʼ´¦¿ªÊ¼¶ÁÈ¡¡£Èç¹ûÆäËû Recordset
¶ÔÏó²»ÊÇÊ׸ö Recordset
¶ÔÏóµÄ¸±±¾£¬Ôò·ÃÎÊÆäÖеÄ×ֶβ»»áÆÆ»µ GetChunk ²Ù×÷¡£Èç¹û
Field ¶ÔÏóµÄ Attributes ÊôÐÔÖÐµÄ adFldLong λÉèÖÃΪ True£¬Ôò¿ÉÒÔ¶Ô¸Ã×Ö¶ÎʹÓÃ
GetChunk ·½·¨¡£Èç¹ûÔÚ Field ¶ÔÏóÉÏʹÓà Getchunk
·½·¨Ê±Ã»Óе±Ç°¼Ç¼£¬½«²úÉú´íÎó 3021£¨ÎÞµ±Ç°¼Ç¼£©¡£½ÓÏÂÀ´£¬ÎÒÃǾÍÒªÀ´Éè¼ÆÎÒÃǵÄÊý¾Ý¿âÁË£¬×÷Ϊ²âÊÔÎÒÃǵÄÊý¾Ý¿â½á¹¹ÈçÏ£¨£Á£ã£ã£å£ó£ó£¹£·£©£º
×Ö¶ÎÃû³Æ¡¡¡¡¡¡¡¡ÀàÐÍ¡¡¡¡¡¡¡¡ÃèÊö
¡¡¡¡id ¡¡¡¡¡¡×Ô¶¯±àºÅ¡¡¡¡¡¡Ö÷¼üÖµ
img OLE¶ÔÏó¡¡¡¡¡¡ÓÃÀ´±£´æÍ¼Æ¬Êý¾Ý¡¡
¶ÔÓÚÔÚMS SQL Server7ÖУ¬¶ÔÓ¦µÄ½á¹¹ÈçÏ£º
×Ö¶ÎÃû³Æ¡¡¡¡¡¡¡¡ÀàÐÍ¡¡¡¡¡¡¡¡ÃèÊö
¡¡¡¡id ¡¡¡¡¡¡¡¡int(Identity)¡¡Ö÷¼üÖµ
img ¡¡¡¡image¡¡¡¡¡¡ ¡¡ÓÃÀ´±£´æÍ¼Æ¬Êý¾Ý¡¡
¡¡¡¡ÏÖÔÚ¿ªÊ¼Õýʽ±àдÎÒÃǵĴ¿£Á£Ó£Ð´úÂëÉÏ´«²¿·ÖÁË£¬Ê×ÏÈ£¬ÎÒÃÇÓÐÒ»¸öÌṩ¸øÓû§µÄÉÏ´«½çÃæ£¬¿ÉÒÔÈÃÓû§Ñ¡ÔñÒªÉÏ´«µÄͼƬ¡£´úÂëÈçÏÂ
£¨upload.htm£©£º
$#@60;html$#@62;
$#@60;body$#@62;
$#@60;center$#@62;
¡¡¡¡ $#@60;form name="mainForm" enctype="multipart/form-data"
action="process.asp" method=post$#@62;
¡¡¡¡¡¡¡¡$#@60;input type=file name=mefile$#@62;$#@60;br$#@62;
¡¡¡¡ $#@60;input type=submit name=ok value="OK"$#@62;
¡¡¡¡ $#@60;/form$#@62;
$#@60;/center$#@62;
$#@60;/body$#@62;
$#@60;/html$#@62;
¡¡¡¡×¢Òâ´úÂëÖкÚɫбÌåµÄ²¿·Ö£¬Ò»¶¨ÒªÔÚFormÖÐÓÐÕâ¸öÊôÐÔ£¬·ñÔò£¬½«ÎÞ·¨µÃµ½ÉÏ´«ÉÏÀ´µÄÊý¾Ý¡£
¡¡¡¡½ÓÏÂÀ´£¬ÎÒÃÇÒªÔÚprocess.aspÖжԴÓä¯ÀÀÆ÷ÖлñÈ¡µÄÊý¾Ý½øÐбØÒªµÄ´¦Àí£¬ÒòΪÎÒÃÇÔÚprocess.aspÖлñÈ¡µ½µÄÊý¾Ý²»½ö½ö°üº¬ÁËÎÒÃÇÏëÒªµÄÉÏ´«ÉÏÀ´µÄͼƬµÄÊý¾Ý£¬Ò²°üº¬ÁËÆäËûµÄÎÞÓõÄÐÅÏ¢£¬ÎÒÃÇÐèÒªÌÞ³ýÈßÓàÊý¾Ý£¬²¢½«´¦Àí¹ýµÄͼƬÊý¾Ý±£´æµ½Êý¾Ý¿âÖУ¬ÕâÀïÎÒÃÇÒÔ£Á£ã£ã£å£ó£ó£¹£·ÎªÀý¡£¾ßÌå´úÂëÈçÏ£¨process.asp£©£º
$#@60;%
response.buffer=true
formsize=request.totalbytes
formdata=request.binaryread(formsize)
bncrlf=chrB(13) & chrB(10)
divider=leftB(formdata,clng(instrb(formdata,bncrlf))-1)
datastart=instrb(formdata,bncrlf & bncrlf)+4
dataend=instrb(datastart+1,formdata,divider)-datastart
mydata=midb(formdata,datastart,dataend)
set connGraph=server.CreateObject("ADODB.connection")
connGraph.ConnectionString="driver={Microsoft Access Driver (*.mdb)};DBQ="
&
server.MapPath("images.mdb") & ";uid=;PWD=;"
connGraph.Open
set rec=server.createobject("ADODB.recordset")
rec.Open "SELECT * FROM [images] where id is null",connGraph,1,3
rec.addnew
rec("img").appendchunk mydata
rec.update
rec.close
set rec=nothing
set connGraph=nothing
%$#@62;
¡¡¡¡ºÃÁË£¬ÕâÏÂÎÒÃǾͰÑÉÏ´«À´µÄͼƬ±£´æµ½ÁËÃûΪimages.mdbµÄÊý¾Ý¿âÖÐÁË£¬Ê£ÏµĹ¤×÷¾ÍÊÇÒª½«Êý¾Ý¿âÖеÄͼƬÊý¾ÝÏÔʾµ½ÍøÒ³ÉÏÃæÁË¡£Ò»°ãÔڣȣԣͣÌÖУ¬ÏÔʾͼƬ¶¼ÊÇʹÓÃ$#@60;IMG$#@62;±êÇ©£¬Ò²¾ÍÊÇ$#@60;IMG
SRC="ͼƬ·¾¶"$#@62;£¬µ«ÊÇÎÒÃǵÄͼƬÊDZ£´æµ½ÁËÊý¾Ý¿âÖУ¬¡°Í¼Æ¬Â·¾¶¡±ÊÇÊ²Ã´ÄØ£¿ºÇºÇ£¬ÆäʵÕâ¸öSRCÊôÐÔ³ýÁËÖ¸¶¨Â·¾¶Í⣬Ҳ¿ÉÒÔÕâÑùʹÓÃŶ£º
$#@60;IMG SRC="showimg.asp?id=xxx"$#@62;
¡¡¡¡ËùÒÔ£¬ÎÒÃÇËùÒª×öµÄ¾ÍÊÇÔÚshowimg.aspÖдÓÊý¾Ý¿âÖжÁ³öÀ´·ûºÏÌõ¼þµÄÊý¾Ý£¬²¢·µ»Øµ½SRCÊôÐÔÖоͿÉÒÔÁË£¬¾ßÌå´úÂëÈçÏ£¨showimg.asp£©£º
$#@60;%
set connGraph=server.CreateObject("ADODB.connection")
connGraph.ConnectionString="driver={Microsoft Access Driver (*.mdb)};DBQ="
&
server.MapPath("images.mdb") & ";uid=;PWD=;"
connGraph.Open
set rec=server.createobject("ADODB.recordset")
strsql="select img from images where id=" & trim(request("id"))
rec.open strsql,connGraph,1,1
Response.ContentType = "image/*"
Response.BinaryWrite rec("img").getChunk(7500000)
rec.close
set rec=nothing
set connGraph=nothing
%$#@62;
¡¡¡¡×¢ÒâÔÚÊä³öµ½ä¯ÀÀÆ÷֮ǰһ¶¨ÒªÖ¸¶¨Response.ContentType =
"image/*"£¬ÒÔ±ãÕý³£ÏÔʾͼƬ¡£
¡¡¡¡×îºóҪעÒâµÄµØ·½ÊÇ£¬ÎÒµÄprocess.aspÖÐ×÷µÄ´¦ÀíûÓп¼Âǵ½µÚÒ»Ò³(upload.htm)Öл¹ÓÐÆäËûÊý¾Ý£¬±ÈÈç$#@60;INPUT
type=tesxt name=userid$#@62;µÈµÈ£¬Èç¹ûÓÐÕâЩÏîÄ¿£¬ÄãµÄprocess.asp¾ÍҪעÒâ´¦Àíµô²»±ØÒªµÄÊý¾Ý¡£ÔõôÑù£¬ÆäʵÉÏ´«Í¼Æ¬²¢±£´æµ½Êý¾Ý¿âºÜ¼òµ¥°É£¬ÕâÑùÔÙÒ²²»ÓÃΪ×Ô¼ºµÄ¿Õ¼äÎÞ·¨Ê¹Óø÷ÀàµÄÉÏ´«×é¼þ·¢³îÁ˰ɡ£»¹µÈʲô£¿¸Ï¿ìÊÔÒ»ÊÔ°É¡£
£¨ÒÔÉÏËùÓгÌÐò¾ùÔÚWinNT4.0Ó¢Îİ棬IIS4£¬Access97/MS SQL Server7.0ÖÐÔËÐÐͨ¹ý£©
|