最近要写一个asp 无组件上传图片文件的代码,感觉asp中真是麻烦,不像asp.net与jsp中有那么强大的文件读写和图片处理的类做支持!从网上找了一个代码,但目前只能上传和按原样输出,内部处理有待研究!
静态文件的源代码如下:
<
html
>
< head >< title > 文件上传 </ title ></ head >
< body >
< form enctype ="multipart/form-data" action ="upload.asp" method ="post" >
请选择要上传的文件: < br >
< input name ="picture" type =file accept ="image/*" >< br >
< input type =submit value ="上传" ></ form >
</ body >
< head >< title > 文件上传 </ title ></ head >
< body >
< form enctype ="multipart/form-data" action ="upload.asp" method ="post" >
请选择要上传的文件: < br >
< input name ="picture" type =file accept ="image/*" >< br >
< input type =submit value ="上传" ></ form >
</ body >
form的属性enctype="multipart/form-data"非常重要,Enctype属性指定了数据在发送之前的编码方式。默认值是Application/x-www-form-urlencoded,是指浏览器将空格转化成(+),而将非字母字符转化成(%)加ASCII码。同时,将输入变量和其值之间加(=),在变量之间加(&)。另一种编码方法Enctype 是Multipart/form-data。这种方法将每个输入控制变量分别以MIME类型文件自动使用Post方法向服务器传递。这种方法比较适合传递复杂的用户输入数据。使用这种方法只要在FORM内设置“ENCTYPE="multipart/form-data"就行了。
upload.asp文件的源代码如下:
<%
...
formsize=request.TotalBytes
'response.write request.TotalBytes
FormData=Request.BinaryRead(FormSize)
bnCRLF=chrB(13) & chrB(10)
Divider=LEFTB(FormData,INSTRB(FormData,bnCRLF)-1)
DataStart=INSTRB(FormData,bnCRLF & bnCRLF)+4
DataEnd=INSTRB(DataStart+1,FormData,divider)-DataStart
Response.ContentType="image/gif"
Response.BinaryWrite MIDB(FormData,DataStart,DataEnd)
%>
formsize=request.TotalBytes
'response.write request.TotalBytes
FormData=Request.BinaryRead(FormSize)
bnCRLF=chrB(13) & chrB(10)
Divider=LEFTB(FormData,INSTRB(FormData,bnCRLF)-1)
DataStart=INSTRB(FormData,bnCRLF & bnCRLF)+4
DataEnd=INSTRB(DataStart+1,FormData,divider)-DataStart
Response.ContentType="image/gif"
Response.BinaryWrite MIDB(FormData,DataStart,DataEnd)
%>
这几天再找找处理图片的代码!