Asp图片上传程序
这是一个名为upload _ wj.inc的文件,用记事本复制代码,保存为upload _ wj.inc。
& lt%
-
转发时请保留此声明信息,此声明不会影响您的速度!
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
修改人:余斌
电子邮件:
网址:
原作者:稻香老农
原作者的网站:
声明:这个上传类是在环境编程社区发布的无组件上传类的基础上修改的。
与环境编程领域上传无组件类相比,快了近50倍。上传大小为4M的文件时,
服务器的处理时间只有10秒。是目前最快的无组件上传程序,目前版本是0.96。
源代码是开放的,可以免费使用。如需商业使用,请联系作者。
文件属性:比如上传的文件是c: \ myfile \ doc.txt。
文件名文件名字符串“doc.txt”
文件大小值1210
文件类型文件类型字符串“text/plain”
FileExt文件扩展名字符串“txt”
文件路径文件原始路径字符串“c:\myfile”
使用时的注意事项:
因为脚本。字典是区分大小写的,网页和ASP页面中的条目名称应该一样大。
写,如果人们习惯使用大写或小写,为了防止错误,你可以把
sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
更改为'
(小写)sformname = lcase (mid (sinfo,ifindstart,ifindend-ifindstart))
(大写)sformName = ucase (Mid (sinfo,ifindstart,ifindend-ifindstart))
'**********************************************************************
-
dim输出文件流
课程上传_文件
dim表单、文件、版本
私有子类_Initialize
定义变量
dim RequestBinDate,sStart,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo
dim iFileSize,sFilePath,sFileType,sFormvalue,sFileName
dim iFindStart,iFindEnd
dim iFormStart,iFormEnd,sFormName
代码开始
Version= "不带组件的上传类版本0.96 "
设置表单=服务器。CreateObject("脚本。字典》)
设置文件=服务器。CreateObject("脚本。字典》)
如有要求。TotalBytes & lt1然后退出接头
设置tStream = Server。CreateObject("adodb.stream ")
set oUpFileStream = Server。CreateObject("adodb.stream ")
oUpFileStream。Type = 1
oUpFileStream。模式= 3
oUpFileStream。打开
oUpFileStream。写请求。BinaryRead(请求。总字节数)
oUpFileStream。位置=0
RequestBinDate = oUpFileStream。阅读
iFormEnd = oUpFileStream。大小
bCrLf = chrB(13)chrB(10)
获取各项之间的分隔符。
sStart = MidB(RequestBinDate,1,InStrB(1,RequestBinDate,bCrLf)-1)
iStart = LenB (sStart)
iFormStart = iStart+2
分解项目
做
iInfoEnd = InStrB(iFormStart,RequestBinDate,bCrLf & ampbCrLf)+3
tStream。Type = 1
tStream。模式= 3
tStream。打开
oUpFileStream。Position = iFormStart
oUpFileStream。复制到tStream,iInfoEnd-iFormStart
tStream。位置= 0
tStream。类型= 2
tStream。Charset ="gb2312 "
sInfo = tStream。阅读文本
获取表单项目的名称
iFormStart = InStrB(iInfoEnd,RequestBinDate,sStart)-1
iFindStart = InStr(22,sInfo," name= " ",1)+6
iFindEnd = InStr(iFindStart,sInfo,"""",1)
sFormName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
如果是文件的话。
if InStr (45,sInfo," filename= " ",1)>那么0
set oFileInfo=新文件信息
获取文档属性
iFindStart = InStr(iFindEnd,sInfo," filename= " ",1)+10
iFindEnd = InStr(iFindStart,sInfo,"""",1)
sFileName = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
oFileInfo。FileName = GetFileName(sFileName)
oFileInfo。FilePath = GetFilePath(sFileName)
oFileInfo。FileExt = GetFileExt(sFileName)
iFindStart = InStr(iFindEnd,sInfo," Content-Type:",1)+14
iFindEnd = InStr(iFindStart,sInfo,vbCr)
oFileInfo。FileType = Mid (sinfo,iFindStart,iFindEnd-iFindStart)
oFileInfo。FileStart = iInfoEnd
oFileInfo。FileSize = iFormStart -iInfoEnd -2
oFileInfo。FormName = sFormName
file.add sFormName,oFileInfo
其他
如果是表单项。
tStream。关闭
tStream。Type = 1
tStream。模式= 3
tStream。打开
oUpFileStream。Position = iInfoEnd
oUpFileStream。复制到tStream,iFormStart-iInfoEnd-2
tStream。位置= 0
tStream。类型= 2
tStream。Charset = "gb2312 "
sFormvalue = tStream。阅读文本
形式。添加sFormName,sFormvalue
如果…就会结束
tStream。关闭
iFormStart = iFormStart+iStart+2
如果到达文件末尾,请退出。
循环直到(iFormStart+2) = iFormEnd
RequestBinDate= " "
设置tStream = nothing
末端接头
私有子类_终止
清除变量和对象。
如果没有请求。TotalBytes & lt那么1
oUpFileStream。关闭
set oUpFileStream =nothing
如果…就会结束
形式。全部删除
文件。全部删除
设置表单=无
设置文件=无
末端接头
获取文件路径。
私有函数GetFilePath(FullPath)
如果FullPath & lt& gt”“那么
GetFilePath = left(FullPath,InStrRev(FullPath," \ "))
其他
GetFilePath = " "
如果…就会结束
结束功能
获取文件名
私有函数GetFileName(完整路径)
如果FullPath & lt& gt”“那么
GetFileName = mid(FullPath,InStrRev(FullPath," \")+1)
其他
GetFileName = " "
如果…就会结束
结束功能
去接分机
私有函数GetFileExt(完整路径)
如果FullPath & lt& gt”“那么
GetFileExt = mid(FullPath,InStrRev(FullPath," ")+1)
其他
GetFileExt = " "
如果…就会结束
结束功能
结束类
文件属性类
FileInfo类
dim格式名,文件名,文件路径,文件大小,文件类型,文件开始,文件扩展名
私有子类_Initialize
文件名= " "
文件路径= " "
文件大小= 0
文件开始= 0
FormName = " "
文件类型= " "
FileExt = " "
末端接头
保存文件方法
公共函数SaveToFile(完整路径)
dim oFileStream,ErrorChar,I
SaveToFile=1
如果trim(fullpath)= " "或right(fullpath,1)="/",则退出功能
set of ilestream = CreateObject(" Adodb。流”)
oFileStream。Type=1
oFileStream。模式=3
oFileStream。打开
oup filestream . position = FileStart
oup filestream . copy to of ilestream,FileSize
oFileStream。SaveToFile完整路径,2
oFileStream。关闭
set oFileStream=nothing
SaveToFile=0
结束功能
结束类
% & gt
下面是一个嵌套页面。
使用以下代码嵌套
& ltiframe src = " situjiaduotu . ASP " align = " left " width = " 300 " height = " 25 " scrolling = " no " frame border = " 0 " & gt;& lt/iframe & gt;
这是situjiaduotu.asp文件。
& lt%
Uppath="upfile/" '文件上传路径,这很重要。您应该在服务器的根目录下创建一个upfile文件夹。
Filelx="jpg " '请求(" Filelx ")'文件上传类型
FormName=request("formName ")'返回到上一页编辑框所在的表单的名称。
EditName=request("EditName ")'返回到上一页编辑框的名称。
% & gt
& lt脚本语言= " javascript " & gt
& lt!-
函数mysub()
{
esave . style . visibility = " visible ";
}
-& gt;
& lt/script & gt;& ltstyle type="text/css " >
& lt!-
正文{
左边距:0px
边距-顶部:0px
右边距:0px
边距-底部:0px
}
-& gt;
& lt/style & gt;
& ltform name = " form 2 " method = " post " action = " situjiaduotu 2 . ASP " enctype = " multipart/form-data " target = " _ blank " & gt;
& lt表格宽度=300高度="15" BORDER=0单元格间距=0单元格填充= 0 & gt
& lttr & gt
& lttd align="left" id="upid" >。
& ltinput type = " file " name = " file 1 " size = " 25 " class = " tx 1 " value = " " & gt;& ltinput type = " submit " name = " submit " value = " upload " class = " button " onclick = " JavaScript:mysub()" >
& ltinput type = " hidden " name = " file path " value = " & lt;%=uppath% >& gt
& ltinput type = " hidden " name = " filel x " value = " & lt;% = filelx % >& gt
& ltinput type = " hidden " name = " EditName " value = " & lt;% =编辑名称% >& gt
& ltinput type = " hidden " name = " FormName " value = " & lt;%=formName% >& gt
& ltinput type = " hidden " name = " act " value = " upload file " & gt。& lt/font & gt;& lt/b & gt;
& lt/TD & gt;
& lt/tr & gt;
& lt/table & gt;
& lt/form & gt;
这是situjiaduotu2.asp文件。
& lt!-# include file = " upload _ wj . Inc "-& gt;
& ltlink href = " CSS . CSS " rel = " style sheet " type = " text/CSS " >
& lt%
设置上传=新上传文件
如果upload.form("act")="uploadfile ",那么
file path = trim(upload . form(" file path "))
filel x = trim(upload . form(" filel x "))
i=0
对于上传中的每个表单名。文件
设置文件=上传。文件(表单名)
fileExt=lcase(file)获得的文件扩展名。“FileExt”不包含。
if file.filesize & lt那就100
response.write " & lt脚本语言= javascript & gtAlert('请先选择您要上传的文件!');history . go(-1);& lt/script & gt;"
响应.结束
如果…就会结束
if(file LX & lt;& gt“swf”)和(filelx & lt& gt“jpg”)然后
response.write " & lt脚本语言= javascript & gtAlert('此文件类型无法上传!');history . go(-1);& lt/script & gt;"
响应.结束
如果…就会结束
如果filelx="swf "那么
if fileext & lt& gt那就“主权财富基金”
response.write " & lt脚本语言= javascript & gtAlert('只能上传swf格式的Flash文件!');history . go(-1);& lt/script & gt;"
响应.结束
如果…就会结束
如果…就会结束
如果filelx="jpg "那么
if fileext & lt& gt“gif”和fileext & lt& gt那就“jpg”吧
response.write " & lt脚本语言= javascript & gtAlert('只能上传jpg或gif格式的图片!');history . go(-1);& lt/script & gt;"
响应.结束
如果…就会结束
如果…就会结束
如果filelx="swf "那么
if file.filesize & gt(3000*1024)然后
response.write " & lt脚本语言= javascript & gtAlert('Flash文件大小不能超过3m!');history . go(-1);& lt/script & gt;"
响应.结束
如果…就会结束
如果…就会结束
如果filelx="jpg "那么
if file.filesize & gt(1000*1024)然后
response.write " & lt脚本语言= javascript & gtAlert('图像文件大小不能超过1m!');history . go(-1);& lt/script & gt;"
响应.结束
如果…就会结束
如果…就会结束
使不规则化
ranNum = int(90000 * rnd)+10000
文件名=文件路径& amp年(现在)和。月(现在)和。日(现在)与时;小时(现在)& amp分钟(现在)& amp第二次(现在)& amp兰纳姆& amp"."& amp文件扩展名
% & gt
& lt%
如果文件。文件大小& gt0 then ' ' If filesize >;0表示有文件数据。
file . Save as server . mappath(filename)' '保存文件。
文件。SaveToFile Server.mappath(文件名)
response.write文件文件名& amp“上传成功!& ltbr >;
Response.write“新文件:&;文件名& amp“& ltbr >;
“response.write”新文件名已经复制到所需位置,所以可以关闭窗口了!"
如果filelx="swf "那么
response.write " & lt脚本& gtwindow.opener.document。upload . form(" FormName ")& amp;" . size.value = ' " & ampint(文件。FileSize/1024)& amp;K ' & lt/script & gt;"
如果…就会结束
response.write " & lt脚本& gtwindow.opener.document。upload . form(" FormName ")& amp;"."& ampupload . form(" EditName ")& amp;".value = ' " & amp文件名和& lt/script & gt;"
% & gt
& lt%
如果…就会结束
设置文件=无
然后
设置上传=无
如果…就会结束
会话("文件名")=文件名
会话。超时=20
% & gt
& lt脚本语言= " javascript " & gt
Window.alert("文件上传成功!请不要修改生成的链接地址!”);
window . opener . location . onsubmit = " refresh()";;
window.close()。
& lt/script & gt;
最后,一定要在服务器的根目录下创建一个名为upfile的文件夹!这一点很重要!
添加到写入数据库的文件中
RS(" imgurl ")=会话("文件名")
回答完了~记得给我加分!