asp利用文件上传组件实现文件上传

<style>body,form,fieldset,input,textarea{margin:0;padding:0;}body{background:#f2f2f2;height:100%;font:12px tahoma,arial;color:#333;text-align:center;}</style>
<body>
<form name="form" method="post" action="upload.asp教程?act=upfile" enctype="multipart/form-data">
<input type="file" name="file11" size="30">
<input type="submit" name="submit" value="上传" class="button">
</form>
</body>
</html>

<%if act="upfile" then '上传相关%>
<html>
<head>
<style>body,form,fieldset,input,textarea{margin:0;padding:0;}body{background:#f2f2f2;height:100%;font:12px tahoma,arial;color:#333;text-align:center;}</style>
<body>
<script runat=server language=vbscript>
dim data_5xsoft
class upload_5xsoft

dim objform,objfile,version
public function form(strform)
strform=lcase(strform)
if not objform.exists(strform) then form="" else form=objform(strform)
end function

public function file(strfile)
strfile=lcase(strfile)
if not objfile.exists(strfile) then set file=new fileinfo else set file=objfile(strfile)
end function

private sub class_initialize
dim requestdata,sstart,vbcrlf,sinfo,iinfostart,iinfoend,tstream,istart,thefile
dim ifilesize,sfilepath,sfiletype,sformvalue,sfilename
dim ifindstart,ifindend
dim iformstart,iformend,sformname
version="化境http上传程序 version 2.0"
set objform=server.createobject("scripting.dictionary")
set objfile=server.createobject("scripting.dictionary")
if request.totalbytes<1 then exit sub
set tstream = server.createobject("adodb.stream")
set data_5xsoft = server.createobject("adodb.stream")
data_5xsoft.type = 1
data_5xsoft.mode =3
data_5xsoft.open
data_5xsoft.write request.binaryread(request.totalbytes)
data_5xsoft.position=0
requestdata =data_5xsoft.read
iformstart = 1
iformend = lenb(requestdata)
vbcrlf = chrb(13) & chrb(10)
sstart = midb(requestdata,1, instrb(iformstart,requestdata,vbcrlf)-1)
istart = lenb (sstart)
iformstart=iformstart+istart+1
while (iformstart + 10) < iformend
    iinfoend = instrb(iformstart,requestdata,vbcrlf & vbcrlf)+3
    tstream.type = 1
    tstream.mode =3
    tstream.open
    data_5xsoft.position = iformstart
    data_5xsoft.copyto tstream,iinfoend-iformstart
    tstream.position = 0
    tstream.type = 2
    tstream.charset ="gb2312"
    sinfo = tstream.readtext
    tstream.close
    '取得表单项目名称
    iformstart = instrb(iinfoend,requestdata,sstart)
    ifindstart = instr(22,sinfo,"name=""",1)+6
    ifindend = instr(ifindstart,sinfo,"""",1)
    sformname = lcase(mid (sinfo,ifindstart,ifindend-ifindstart))
    '如果是文件
    if instr (45,sinfo,"filename=""",1) > 0 then
        set thefile=new fileinfo
        '取得文件名
        ifindstart = instr(ifindend,sinfo,"filename=""",1)+10
        ifindend = instr(ifindstart,sinfo,"""",1)
        sfilename = mid (sinfo,ifindstart,ifindend-ifindstart)
        thefile.filename=getfilename(sfilename)
        thefile.filepath=getfilepath(sfilename)
        '取得文件类型
        ifindstart = instr(ifindend,sinfo,"content-type: ",1)+14
        ifindend = instr(ifindstart,sinfo,vbcr)
        thefile.filetype =mid (sinfo,ifindstart,ifindend-ifindstart)
        thefile.filestart =iinfoend
        thefile.filesize = iformstart -iinfoend -3
        thefile.formname=sformname
        if not objfile.exists(sformname) then objfile.add sformname,thefile
    else
    '如果是表单项目
        tstream.type =1
        tstream.mode =3
        tstream.open
        data_5xsoft.position = iinfoend
        data_5xsoft.copyto tstream,iformstart-iinfoend-3
        tstream.position = 0
        tstream.type = 2
        tstream.charset ="gb2312"
        sformvalue = tstream.readtext
        tstream.close
        if objform.exists(sformname) then
         objform(sformname)=objform(sformname)&", "&sformvalue       
        else
         objform.add sformname,sformvalue
        end if
    end if
    iformstart=iformstart+istart+1
    wend
requestdata=""
set tstream =nothing
end sub
private sub class_terminate
if request.totalbytes>0 then
    objform.removeall
    objfile.removeall
    set objform=nothing
    set objfile=nothing
    data_5xsoft.close
    set data_5xsoft =nothing
end if
end sub
 
private function getfilepath(fullpath)
if fullpath <> "" then getfilepath = left(fullpath,instrrev(fullpath, "")) else getfilepath = ""
end function

private function getfilename(fullpath)
if fullpath <> "" then getfilename = mid(fullpath,instrrev(fullpath, "")+1) else getfilename = ""
end function

end class

class fileinfo
dim formname,filename,filepath,filesize,filetype,filestart
private sub class_initialize
  filename = ""
  filepath = ""
  filesize = 0
  filestart= 0
  formname = ""
  filetype = ""
end sub

public function saveas(fullpath)
  dim dr,errorchar,i
  saveas=true
  if trim(fullpath)="" or filestart=0 or filename="" or right(fullpath,1)="/" then exit function
  set dr=createobject("adodb.stream")
  dr.mode=3
  dr.type=1
  dr.open
  data_5xsoft.position=filestart
  data_5xsoft.copyto dr,filesize
  dr.savetofile fullpath,2
  dr.close
  set dr=nothing
  saveas=false
end function
end class
</script>
<%
dim upload,file,formpath,icount,filename,fileext
dim formname,uploadsuc,forum_upload,forumupload,upf,f_type,f_name,f_ftn,rannum
set upload=new upload_5xsoft '建立上传对象
'********************************列出所有上传文件***************************************************
for each formname in upload.objfile
set file=upload.file(formname)
if file.filesize>0 then
    '********************************检测文件类型****************************************************
    fileext=ucase(right(file.filename,4))
    uploadsuc=false
    forum_upload="rar|zip|swf|jpg|png|gif|doc|txt|chm|pdf|ace|mp3|wma|wmv|midi|avi|rm|ra|rmvb|mov|xls"
    forumupload=split(forum_upload,"|")
    for i=0 to ubound(forumupload)
        if fileext="."&trim(forumupload(i)) then
            uploadsuc=true
            exit for
        else
            uploadsuc=false
        end if
    next
    if uploadsuc=false then
        response.write "文件格式不正确[<a href=""post.asp?act=upload"">继续上传</a>]"
        response.end
    end if
    '********************************建立文件上传的目录文件夹****************************************
    set upf=server.createobject("scripting.filesystemobject")
    if err<>0 then
        err.clear
        response.write("您的服务器不支持fso")
        response.end
    end if
    f_type= replace(fileext,".","")
    f_name= year(now)&"-"&month(now)
    if upf.folderexists(server.mappath("upload/"&f_name))=false then
       upf.createfolder server.mappath("upload/"&f_name)
    end if
    f_ftn="upload/"&f_name
    set upf=nothing
    '********************************保存上传文件至文件夹*****************************************
    randomize
    rannum=int(90000*rnd)+10000
    filename=f_ftn&"/"&day(now)&"-"&rannum&"-"&file.filename
    file.saveas server.mappath(filename)  '保存文件
        if f_type="jpg" or f_type="gif" or f_type="png" then
            response.write "<script>parent.form1.content.value+='[img]"&filename&"[/img]'</script>"
        elseif f_type="zip" or f_type="rar" or f_type="doc" or f_type="txt" then
            response.write "<script>parent.form1.content.value+='[url]"&filename&"[/url]'</script>"
        else
            response.write "<script>parent.form1.content.value+=' "&filename&" '</script>"
        end if
        icount=icount+1
set file=nothing
end if
next
set upload=nothing '删除此对象
response.write("文件上传成功!<a href=""upload.asp?act=upload"">继续上传</a>")
%>
</body>
</html>
<%end if%>

<%call closeall%>

时间: 2024-10-29 02:50:40

asp利用文件上传组件实现文件上传的相关文章

asp 利用文件上传组件upload_5xsoft文件上传

我们是利用upload文件上传组件进行文件上传哦. <%Server.ScriptTimeOut=5000%> <!--#include file="conn.asp"--> <!--#include FILE="upload_5xsoft.inc"--> <html> <head> <title>文件上传</title> <link rel="stylesheet&

利用apache的FileUpload组件实现文件上传

1.可以实现一个或多个文件的上传,也可以接收普通的form表单数据. 2.简单测试了一下,对内存的占用还是可以忍受的,而且速度也可以.偶尔会导致内存使用的上升而且不会下降,长时间后是否会降下来还没有测试. 关键点: 1.提交文件上传的form的method属性为post,enctype属性为multipart/form-data. 2.input标签需要有name属性,否则取不到内容. 看看servlet的实现,注释已经很详细了: Java代码 package org.xxm; import j

asp利用文件上传组件upload

我们是利用upload文件上传组件进行文件上传哦. <%Server.ScriptTimeOut=5000%> <!--#include file="conn.asp"--> <!--#include FILE="upload_5xsoft.inc"--> <html> <head> <title>文件上传</title> <link rel="stylesheet&

jQuery移动端图片上传组件_jquery

本文实例为大家分享了移动端图片上传组件,供大家参考,具体内容如下 Imageupload使用File API+canvas 客户端压缩图片,并实现文件上传服务端 文件依赖 JQUERY 参数API loading:'.loading', 页面显示loading的图标selector url:'', 接收数据的api接口地址 maxFileSize:1010241024, 服务端支持的最大单文件大小 format:/^image/i, 支持的文件格式. images text ..... isCo

asp.net(c#)开发中的文件上传组件uploadify的使用方法(带进度条)_实用技巧

在Web开发中,有很多可以上传的组件模块,利用HTML的File控件的上传也是一种办法,不过这种方式,需要处理的细节比较多,而且只能支持单文件的操作.在目前Web开发中用的比较多的,可能uploadify(参考http://www.uploadify.com/)也算一个吧,不过这个版本一直在变化,他们的脚本调用也有很大的不同,甚至调用及参数都一直在变化,很早的时候,那个Flash的按钮文字还没法变化,本篇随笔主要根据项目实际,介绍一下3.1版本的uploadify的控件使用,这版本目前还是最新的

ASP支持中文的无组件文件上传

文件名:upload.inc 说明:支持中文的无组件文件上传ASP函数,由于ASP不支持二进制写入文件,所以存成文件时必须使用组件,本函数只提供截取上传文件的数据,可以写入到数据库. <SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT> Function GetUpload(FormData) Dim DataStart,DivStr,DivLen,DataSize,FormFieldData '分隔标志串(+CRLF) DivStr = LeftB(FormData

asp文件上传的速度和上传组件有关吗

问题描述 asp文件上传的速度和上传组件有关吗,我有两个上传文件源代码,一个上传组件是无惧上传组件一个是upload_5xsoft程序运行时前者上传文件90M很快上传了(都是本地上传到本地的),后者10M的都要很慢求解等大虾~~~ 解决方案 解决方案二:有关系有的组件做得很好上传很快解决方案三:由关系吧解决方案四:有关系的,尽量用第三方组件或者.Net上传,纯脚本写的效率不高

Asp.Net + Flash 上传的组件,文件上传后返回值问题,急!

问题描述 我从网上下载了一个Asp.Net+Flash上传的组件,自己改了下,现在已实现以下功能: 1.上传多个文件: 2.定义上传各种类型的文件: 3.定义上传路径: 4.支持上传大文件. 主页面:Default.aspx(页面链接包含了:Default.aspx.cs.upload.swf.UploadVideo.ashx) 上传文件页面:UploadVideo.ashx 现在有个很大的问题:就是UploadVideo.ashx页面上传文件后,要如何将文件名称(处理结果)返回到Default

asp.net中Fine Uploader文件上传组件使用介绍_实用技巧

最近在处理后台数据时需要实现文件上传.考虑到对浏览器适配上采用Fine Uploader. Fine Uploader 采用ajax方式实现对文件上传.同时在浏览器中直接支持文件拖拽[对浏览器版本有要求类似IE版本必须是9或是更高的IE10].在不同浏览器中提供统一用户体验.该组件基本覆盖目前所有主流浏览器.同时没有任何第三方组件依赖.相当Clear.在服务器端已经覆盖支持了ASP.NET/ColdFusion/Java/Node.js/Perl/PHP/Python. 对上传细节类似限制文件大