Username: Password:

ASP中多文档同时上传解决方案
来源:作者: 发布时间:2007-11-09 05:14:02

上传表单如下:

标题:   
性别:
属于:
是否选定:
内容: 分类:          
   选取文档一: 
   选取文档二: 
   选取文档三: 
   选取文档四: 
   选取文档五: 

 

ASP源代码:



文档上传


   <% Set Obj = Server.CreateObject("Yousoft.UploadFile")
   Response.Write "总共上传 " & obj.Count & " 个文档
总数据大小 " & obj.TotalBytes & " Bytes
共花费了时间 " & (obj.SpendTime/1000) & " 秒
"
   response.write obj.version %>



 
   
   
 
 
   
   
 
 
   
   
 
 
   
   
 
 
   
   
 
 
   
   
 
 
   
   
 
标题:<%=obj.form("title1")%>
属于:<%=obj.form("sel1")%>
性别:<%=obj.form("sex1")%>
分类:<%=obj.form("list1")%>
内容: <%=obj.form("Content1")%>
是否选定:<%=obj.form("select1")%>
提交按钮:<%=obj.form("save")%>

 


上传文档如下:



 
   
   
   
   
   
   
   
 
  <%for i=0 to Obj.Count-1 %>
  <% userFile = Obj.userFile(i) %>
 
   
   
   
   
   
   
   
 
  <% ’ Obj.SaveToFTP "192.168.7.168",21,5000,"xu","xu",0,"",0,"",userFile,Obj.FileName(userFile) %>
  <% ’Obj.SaveFile userFile, "c:\" & Obj.FileName(userFile) %>
  <%’ Obj.SaveFileAS userFile, "c:\" & Obj.FileName(userFile)  %>
  <% ’Obj.SaveFileAS "file6", "c:\a.txt"  %>
 <%’ =Obj.GetFileData (userFile,"txt") %>
  <% next
   set Obj=nothing %>
名称文档名(包括扩展名)文档名(不含扩展名)文档大小(B)原文档路径文档扩展名原文档名(含路径)

      <% =userFile %>
   

      <% =Obj.FileName(userFile) %>
   

      <% =Obj.FileNameX(userFile) %>
   

      <% =Obj.FileSize(userFile) %>
   

      <% =Obj.FilePath(userFile) %>
   

      <% =Obj.FileExt(userFile) %>
   

      <% =Obj.OldFileName(userFile)%>
   




上传结果:

总共上传 5 个文档
总数据大小 4317 Bytes
共花费了时间 .321 秒
YouUpload 1.0版 版权任何(C)徐长友
标题: ASP中多文档同时上传解决方案
属于: 体育艺术
性别:
分类: 分类3
内容: 在大多数J2EE系统中,我们希望由无状态会话Bean形式的工厂或管理器触发适当的事件。但EJB容器创建每一个Bean实例的时候都会带有一组重复的监听器。本文告诉您怎样在EJB环境中正确实现“观察者”模式。
是否选定:
提交按钮: 确认上传

上传文档如下:

名称 文档名(包括扩展名) 文档名(不含扩展名) 文档大小(B) 原文档路径 文档扩展名 原文档名(含路径)
file1 AUTOEXEC.BAT AUTOEXEC 2 C:\ .BAT C:\AUTOEXEC.BAT
file2 boot.ini boot 199 C:\ .ini C:\boot.ini
file3 CONFIG.SYS CONFIG 2 C:\ .SYS C:\CONFIG.SYS
file4 skin.txt skin 2236 C:\ .txt C:\skin.txt
file5 WINNTnwstatus.txt WINNTnwstatus 59 C:\ .txt C:\WINNTnwstatus.txt

以上使用了YouUpload上传组件,下面是YouUpload的介绍:

YouUpload -- 文档上传组件

欢迎使用YouUpload !

许可协议

请参阅license.txt

功能简介

  • 支持上传多个文档
  • 支持任何格式的文档上传,zip,jpg,gif等格式全部支持
  • 支持将上传的文档改名保存
  • 支持同时使用其他的form input,携带附加的信息,例如,文档说明
  • 支持判断上传文档的大小、文档类型
  • 支持将文档内容保存进数据库
  • 支持上传到FTP目录中
  • 无需IIS将目录配置为Write(假如是NTFS文档系统,其安全性需要配置,能够简单的配置为everyone full control,或配置为IUSR_SERVER full control)
  • YouUpload现在无任何功能限制,完全免费使用
  • 适用系统

    适用于 Windows 98 + pws4 ,NT4.0 server + IIS 4 ,Win2K+IIS 5

    下载地址

     http://www.csdn.net

    安装指南

    需要: Windows NT Server 4 Edition + SP3 + IE4.01 + Option Pack / win98 + IE4.01

    1. 假如下载的是安装程式,运行Setup即可
    2. 测试,您安装目录下的Examples复制到Web服务器的发布目录即可测试默认文档Default.asp
    3. 在浏览器地址栏输入如 ’http://yourhost/uploadtest/’
    4. 假如上方出现版权任何,基本上没多大问题了
    5. 您再上传一些文档试一下

    组件属性

    • object.Form(FieldName)
      返回表单数据

      object.Form("title") ’title是表单名称

    • object.SaveFile(FieldName, FileName)
      FieldName:表单名
      FileName:新的文档名(注:要包括路径)

      Dim upl, FileName
      Set upl = Server.CreateObject("yousoft.YouUpload")
      FileName = upl.FileName("File1")
      upl.SaveFile "File1", "c:\temp\" & FileName

    • object.SaveFileAs(FieldName, FName)
      FieldName:表单名
      FileName:新的文档名(注:要包括路径)

      Dim upl, FileName
      Set upl = Server.CreateObject("yousoft.YouUpload")
      FileName = upl.FileName("File1")
      upl.SaveFileAs "File1", "c:\temp\" & FileName

    • object.SaveToFtp(ftp_Host,ftp_Port,timeout,ftp_user,ftp_password,
      Use_Proxy,Proxy_Host,Proxy_port,User_dir,FieldName,FileName)
      ftp_Host :Ftp主机(最好用IP地址)
      ftp_Port :ftp服务器端口(一般为21)
      timeout :连接ftp超时时间
      ftp_user :ftp登录名
      ftp_password :ftp登录密码
      Use_Proxy :是否使用代理服务器连接ftp,假如 =1 则使用代理 =0 不使用代理
      Proxy_Host :代理服务器主机(最好用IP),结合Use_proxy使用
      Proxy_Port :代理服务器端口,结合Use_proxy使用
      User_dir :当前ftp路径,为空则表示不指定路径,即登录后默认路径
      FieldName :表单名称,从这决定保存的文档
      FileName :指定新的文档名

      Obj.SaveToFtp "192.168.7.168",21,5000,"xu","xu",0,"",0,"","file1","new.exe"

    • object.FileName(FieldName)

    • 得到文档名(包括扩展名)

    • object.FilePath((FieldName)
      取得上传文档路径

    • object.FileSize((FieldName)
      取得上传文档大小

    • object.FileExt(FieldName)
      取得上传文档扩展名

    • object.OldFileName(FieldName)
      取得上传文档完整名(包括路径在内)

    • object.FileNameX(FieldName)
      得到文档名(不包括扩展名)

    • object.Count
      上传文档数目

    • object.TotalBytes
      上传数据总字节数

    • object.SpendTime
      上传所花时间(单位:毫秒)

    • object.userFile(N)
      取得上传文档第N个的名称(表单名)

    • object.GetFileData(FieldName,DataType)
      取得上传文档数据
      DataType :
      "bin" 取得二进制数据
      "txt" 取得文本数据

      您能够取得数据存放到数据库中,以文本或二进制方式存放

      <%=Obj.GetFileData ("File1","txt") %>

    • object.Version
      取得当前YouUpload版本

     

    使用说明

    请参考Examples目录下的示例

    上传form的写法


    enctype="multipart/form-data" 是必须的,并且method必须是post

    假如获得上传文档的文档个数
    set obj=server.createobject("Yousoft.UploadFile")
    response.write "文档个数:"&obj.count

    假如上传多个文档,假如确定对应file input上传的文档
    obj.userFile(N)
    取得上传文档第N个的名称(表单名)

    怎样获得文档的后缀名
    ext=FileExt(FieldName) ’FieldName为表单名,如’file1’

    怎样将文档内容保存进数据库
    假如您使用sql server,需要定义一个image类型的字段
    dim conn,rs
    set conn=server.CreateObject("adodb.connection")
    conn.open "testfile","sa","xxx"
    set rs=server.CreateObject("adodb.recordset")
    rs.Open "SELECT * FROM [file] where filename is null",conn,1,3
    rs.AddNew
    rs("filename")=obj.FileName(’file1’)
    rs("filesize")=obj.FileSize(’file1’)
    rs("filecontent").AppendChunk Obj.GetFileData (userFile,"bin") ’BLOB数据不能直接赋值 假如不是二进制保存 "bin" 改为 "txt"
    rs.Update
    rs.Close
    conn.Close
    set rs=nothing
    set conn=nothing   
    相反的要将数据从数据库里面取出来,请参考下面的程式
    dim conn,rs
    dim content
    set conn=server.CreateObject("adodb.connection")
    conn.open "testfile","sa","xxx"
    set rs=server.CreateObject("adodb.recordset")
    rs.Open "SELECT * FROM [file] where id =" & id,conn,1,1
    content=rs("filecontent").getChunk(clng(rs("filesize")))))
    conn.Close
    set rs=nothing
    set conn=nothing       

    安装可能出现的问题

    假如您发现,请和我联系!

    程式使用可能存在的问题

    假如您发现,请和我联系!

    测试反馈

    假如您在测试中发现任何问题,请mailto: mailto:yousoft@chinaren.com?subject=关于YouUpload,或请在我主页的bbs进行讨论或留言。

    希望大家能对这个组件多提意见。

    在我们讨论asp问题的时候,常常会碰到许多问题只有利用asp components来解决,而这些com通常只有在外国的站点才可能找到,可见国内的这方面的东东还少。所以我希望得到各位的支持。


    喜欢本文,那就收藏到:

      Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
    相关评论  我也要评论
    还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅