上传表单如下:
ASP源代码:
<HTML> <BODY> <TITLE>文件上传</TITLE> <CENTER> </CENTER> <% Set Obj = Server.CreateObject("Yousoft.UploadFile") Response.Write "总共上传 " & obj.Count & " 个文件<br>总数据大小 " & obj.TotalBytes & " Bytes<br>共花费了时间 " & (obj.SpendTime/1000) & " 秒<br>" response.write obj.version %> <HR> <table width="75%" border="1"> <tr> <td width="20%">标题:</td> <td width="80%"><%=obj.form("title1")%></td> </tr> <tr> <td width="20%">属于:</td> <td width="80%"><%=obj.form("sel1")%></td> </tr> <tr> <td width="20%">性别:</td> <td width="80%"><%=obj.form("sex1")%></td> </tr> <tr> <td width="20%">分类:</td> <td width="80%"><%=obj.form("list1")%></td> </tr> <tr> <td width="20%">内容: </td> <td width="80%"><%=obj.form("Content1")%></td> </tr> <tr> <td width="20%">是否选定:</td> <td width="80%"><%=obj.form("select1")%></td> </tr> <tr> <td width="20%">提交按钮:</td> <td width="80%"><%=obj.form("save")%></td> </tr> </table> <p> </p> <p>上传文件如下:<br> </p> <table border="1"> <tr> <td nowrap>名称</td> <td nowrap>文件名(包括扩展名)</td> <td nowrap>文件名(不含扩展名)</td> <td nowrap>文件大小(B)</td> <td nowrap>原文件路径</td> <td nowrap>文件扩展名</td> <td nowrap>原文件名(含路径)</td> </tr> <%for i=0 to Obj.Count-1 %> <% userFile = Obj.userFile(i) %> <tr> <td> <% =userFile %> </td> <td> <% =Obj.FileName(userFile) %> </td> <td> <% =Obj.FileNameX(userFile) %> </td> <td> <% =Obj.FileSize(userFile) %> </td> <td> <% =Obj.FilePath(userFile) %> </td> <td> <% =Obj.FileExt(userFile) %> </td> <td> <% =Obj.OldFileName(userFile)%> </td> </tr> <% ' 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 %> </table> <HR> </BODY> </HTML> | 上传结果:
总共上传 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/FileBBS/files/2001_9/T_567_1.zip
要求: 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的写法 <form enctype="multipart/form-data" method="post" action="Upload.asp" name="Upload"> 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通常只有在国外的站点才可能找到,可见国内的这方面的东东还少。所以我希望得到各位的支持。
|
|