asp类编写的上传代码

可以直接复制可以测试哦!

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%
Response.Buffer=True
Server.ScriptTimeOut=9999999

On Error Resume Next
%>

<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
</head>
<body>

<%
Class HZTUpload

Public filesize,filetype,filepath,reservefilename,formid,txtid
Private formsize,formdata,bincrlf,oencrlfplace,twocrlfplace,ext,p,l,filename,savefilepath,rndfilename
Private usingstream,stream,fso

Private Sub Class_Initialize
       filesize=1024 ’文件大小,k
       filetype="gif,png,jpg,jpeg" ’文件类型
       filepath="Upload" ’保存目录
       reservefilename=0 ’0:不保留原文件名,1:保留原文件名    
       formid="myform"
       txtid="txt"
    
       Randomize()
       ’系统生成文件名
       rndfilename=Year(Now())&Month(Now())&Day(Now())&Hour(Now())&Minute(Now())&Second(Now())&Int((999999-100000+1)*Rnd()+100000)
    
       Set usingstream=Server.CreateObject("ADODB.Stream")
       Set stream=Server.Createobject("ADODB.Stream")
       Set fso=Server.CreateObject("Scripting.FileSystemObject")
End Sub

Private Sub Class_Terminate
       usingstream.Close():Set usingstream=Nothing
       stream.Close():Set stream=Nothing
       Set fso=Nothing
End Sub

Sub Upload() ’要返回的form和text的id

       If Right(filepath,1)<>"/" Then filepath=filepath&"/"
    
       formsize=Request.TotalBytes
       formdata=Request.BinaryRead(formsize)

       usingstream.Type=1
       usingstream.Open()
       usingstream.Write(formdata)

       bincrlf=ChrB(13)&ChrB(10) ’二进制回车换行
       oencrlfplace=InStrB(formdata,bincrlf) ’44,第一次回车换行位置
       twocrlfplace=InStrB(oencrlfplace+1,formdata,bincrlf) ’第二次回车换行位置


       stream.Type=1
       stream.Open()
       usingstream.Position=oencrlfplace+1
       usingstream.CopyTo stream,twocrlfplace-oencrlfplace-3 ’得到第二行数据,twocrlfplace-onecrlfplace-("长度)
       stream.Position=0
       stream.Type=2 ’字符串
       stream.CharSet="GB2312"
       streamtext=stream.Readtext() ’读取第二行数据
       stream.Close()

       filename=Mid(streamtext,InstrRev(streamtext,"")+1) ’得到文件名

       p=InStrB(formdata,bincrlf&bincrlf)+4 ’4为两次回车换行长度
       l=InStrB(p+1,formdata,LeftB(formdata,oencrlfplace-1))-p-2 ’文件内容部分长度,onecrlfplace-1为第一行数据(也是分隔符),2为回车换行长度
       stream.Type=1
       stream.Open()
       usingstream.Position=p-1
       usingstream.CopyTo stream,l ’文件内容数据

’---------------------------------------------------------------------------------------------------    
       Call CheckFolder(filepath) ’检测文件夹是否存在,如果不存在则创建
       ext=Right(filename,1+Len(filename)-InStrRev(filename,".")) ’文件扩展名:.gif
    
       If        reservefilename=0 Then     ’自动命名
           savefilepath=Server.MapPath(filepath&rndfilename&ext)
           filename=rndfilename&ext
       Else ’保留原文件名
           filename=CheckFile(Left(filename,InStrRev(filename,".")-1),ext)
           savefilepath=Server.MapPath(filepath&filename)
       End If
    
       If CheckExt(Mid(ext,2))=False Then Call Message(1) ’检测文件类型
       If ceil(stream.Size/1024)>filesize Then Call Message(2)’检测文件大小
’---------------------------------------------------------------------------------------------------
       stream.SaveToFile savefilepath,2 ’保存文件
    
       If Err.Number=0 Then
           Call Message(0)
       Else
           Call Message(404)
       End If
    
End Sub

Function ceil(v) ’实现JS中Math.ceil()
       If v>0 Then
           v=Fix(v)+Sgn(v-Fix(v))
       Else
           v=Fix(v)
       End If
       ceil=v
End Function

Function CheckFolder(foldername) ’检测文件夹是否存在,如果不存在则创建
       If fso.FolderExists(Server.MapPath(foldername)) Then
           Exit Function
       Else
           fso.CreateFolder(Server.MapPath(foldername))
       End If
End Function

Function CheckFile(fname,ext) ’检测文件是否存在,如果存在则重命名,如:重名文件(1).txt
       If fso.FileExists(Server.MapPath(filepath&fname&ext)) Then
           Dim i
           i=1
           Do While (fso.FileExists(Server.MapPath(filepath&fname&"("&i&")"&ext)))
               i=i+1    
           Loop
        
           CheckFile=fname&"("&i&")"&ext
       Else
           CheckFile=fname&ext
       End If
End Function

Function CheckExt(ext) ’检测文件类型合法性
       Dim i,istrue,exts
       exts=Split(filetype,",")
       For i=0 To UBound(exts)
           If LCase(ext)=exts(i) Then
               istrue=True
               Exit For
          Else
              istrue=False
          End If
      Next
      CheckExt=istrue
End Function

Sub Message(mi)
      Select Case mi
          Case 1:
              Response.Write("<script>")
              Response.Write("window.alert(’文件类型非法!’);history.back();")
              Response.Write("</script>")
              Response.End()
          Case 2:
              Response.Write("<script>")
              Response.Write("window.alert(’文件大小超过限制!’);history.back();")
              Response.Write("</script>")
              Response.End()
          Case 0:
              Response.Write("<font color=’0000FF’>文件上传成功!</font>")
              Response.Write("&nbsp;&nbsp;&nbsp;<a href=’"&Request.ServerVariables("URL")&"’>重新上传</a>")
              Response.Write("<script>")
              Response.Write("window.top.document."&formid&"."&txtid&".value=’"&filename&"’;")
              Response.Write("</script>")
              Response.End()
          Case 404:
              Response.Write("<font color=’FF0000’>文件上传失败!</font>")
              Response.Write("&nbsp;&nbsp;&nbsp;<a href=’"&Request.ServerVariables("URL")&"’>重新上传</a>")
             Response.End()
     End Select
End Sub

End Class

If Request.TotalBytes>0 Then
     Set hg=New HZTUpload
     ’hg.filepath="Pic/" ’文件保存路径,默认:Upload
     ’hg.filetype="gif,png,jpg,jpeg,rar" ’文件类型,默认:gif,png,jpg,jpeg
     ’hg.filesize=1024 ’文件大小,单位k,默认:1024
     ’hg.reservefilename=0 ’是否保留原文件名,0:否,1:是,默认:0
     hg.formid="mf" ’接收文件名的form的id,默认:myform
     hg.txtid="txt" ’接收文件名的text的id,默认:txt
     hg.Upload() ’保存文件,form名称,text名称
Else
%>
<form id="mf" name="mf" method="post" action="<%=Request.ServerVariables("URL")%>" enctype="multipart/form-data">
<input type="file" id="f" name="f" />
<br />
<input type="submit" value="提交" />
<input type="reset" value="重置" />
</form>
<%End If%>
</body>
</html>

上面的一部分是类文件.你也可以把他分开,在进行包含就可以了


本文来自:PHP小戴(www.phpxd.com) 详细出处参考:http://www.phpxd.com/yuandaima/2008-12-02/200812021009070.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
1. 智慧监狱概述 智慧监狱的建设背景基于监狱信息化的发展历程,从最初的数字化监狱到信息化监狱,最终发展到智慧监狱。智慧监狱强调管理的精细化、监管的一体化、改造的科学化以及办公的无纸化。政策上,自2017年以来,司法部连续发布了多项指导性文件,推动智慧监狱的建设。 2. 内在需求与挑战 智慧监狱的内在需求包括数据应用与共享的不足、安防系统的单一功能、IT架构的复杂性、信息安全建设的薄弱以及IT运维的人工依赖。这些挑战要求监狱系统进行改革,以实现数据的深度利用和业务的智能化。 3. 技术架构与设计 智慧监狱的技术架构包括统一门户、信息安全、综合运维、安防集成平台和大数据平台。设计上,智慧监狱采用云计算、物联网、大数据和人工智能等技术,实现资源的动态分配、业务的快速部署和安全的主动防护。 4. 数据治理与应用 监狱数据应用现状面临数据分散和共享不足的问题。智慧监狱通过构建数据共享交换体系、数据治理工具及服务,以及基于数据仓库的数据分析模型,提升了数据的利用效率和决策支持能力。 5. 安全与运维 智慧监狱的信息安全建设涵盖了大数据应用、安全管理区、业务区等多个层面,确保了数据的安全和系统的稳定运行。同时,综合运维平台的建立,实现了IT系统的统一管理和自动化运维,提高了运维效率和系统的可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值