ÄãµÄλÖãºÈí¼þ> Éè¼ÆÔÚÏß> ÍøÒ³ÌÕ°É> ¼¼Êõƽ̨> HTMLѧϰ>
Óô¿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ÖÐÔËÐÐͨ¹ý£©



¡¾·¢±íÆÀÂÛ¡¿¡¾¹Ø±Õ´°¿Ú¡¿


.ÓÃASP¿ª·¢ÊÔÌâ¿âÓëÔÚÏß¿¼ÊÔϵͳ
.ASPÖÐʵÓÃµÄ¹ã¸æ½»Ìæ×é¼þ
.ÍøÒ³ÔÚÏßÈËÊýͳ¼ÆµÄ×ö·¨
.Ò»¸ö¼òµ¥ÁÄÌìÊҵĽ¨Á¢
.ÓÃASP¹¹½¨ÒôÀÖ·þÎñÆ÷
.ÓÃASPÅжÏEmailµØÖ·ÊÇ·ñÓÐЧ
.ÓÃASPʵÏÖÒ»¸öÕæÕýµÄ×¢²áÒ³Ãæ