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 ")=会话("文件名")

回答完了~记得给我加分!