动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
  
   Asp → 阅读文章

 用JSP文件上载轻松实现

作者来源: 
阅读 1234 人次 , 2006-3-29 4:22:00 


现在jsp被越来越多的人应用在后台程序的开发及动态网页的制作上了,今天就来介绍一下如何用jsp来实现文件的上载。

  一、rfc1867规范

  在过去的html中,表单不能实现文件的上传,这多少限制了一些网页的功能。rfc1867规范(即html中实现基于表单的文件上传)对表单作出了扩展,增加了一个表单元素&:ltinput type=file>。通过使用这个元素,浏览器会自动生成一个输入框和一个按钮,输入框可供用户填写本地的文件名和路径名,按钮可以让浏览器打开一个文件选择框供用户选择文件。具体的表单实现如下:

  <form action=upload.jsp enctype=″multipart/form-data″ method=post>
   please input your name
   <input type=text name=user><br> please give us the file
   <input type=file name=file1>
   <input type=submit value=″send file″>
   </form>

  特别需要指出的是,只有netscape 3和ie3.02以后的版本才支持此规范,而且我们实践下来发现文件选择按钮是浏览器自动生成的,因而按钮的文字和浏览器版本有很大的关系,如果是中文的ie,按钮的文字是“打开...”;英文的netscape则显示“browse...”;如果是opera,则只有″...″。用户没办法自己设定按钮文字,不能不说是一种遗憾。除了浏览器,网络服务器也要能支持此规范,好在现在市面上绝大部分服务器软件都没有问题,微软的iis在增加一个插件后也能很好地支持此规范。

   二、组件的安装

  在用户端实现文件上传后,就要用jsp来处理用户的上传请求。我们可以去www.jspsmart.com下载一个免费的组件来实现这一功能。在安装之前先确认你的jsp服务器软件支持jdk1.2.2和jsp1.1,然后只要在server的class路径中加入该组件所在的目录就可以了。

  三、程序实现

  1.文件上传

  <%@ page language=″java″ import=″com.jspsmart.upload.″%>
   <html>
   <body bgcolor=″white″>
   <h1>jspsmartupload </h1>
   <hr>
   <% int count=0 //设置变量 smartupload mysmartupload=new smartupload
 mysmartupload.initializepagecontext //初始化
   mysmartupload.upload //上传 ry
   count = mysmartupload.save″/upload″ //把上传的文件保存在/upload目录下 out.printlncount + ″ files uploaded.″ //显示上传了多少个文件
   catch exception e  out.printlne.tostring %>
   </body>
   </html>

  需要注意:调试的时候要确认上传文件所存储的目录有可写属性。

  2.表单处理

  由于上传文件的表单使用了 enctype=″multipart/form-data″属性,所以在jsp中处理表单传递的值的时候不能再简单地使用request.getparameter了,而应该这样来处理:

  <%@ page language=″java″ import=″com.jspsmart.upload.″%>
   <html>
   <body bgcolor=″white″>
   <h1>jspsmartupload </h1>
   <hr>
   <% smartupload myupload=new smartupload myupload.initializepagecontext myupload.upload out.println″number of files = ″ + myupload.getfiles.getcount + ″<br>″ out.println″
   <br>
   <br>
   <strong>display information about requests</strong>
   <br>″
   string[ ]values = myupload.getrequest
.getparametervalues″formtag″ //formtag为表单中元素的name,返回的值为字符数组中第一个元素。 out.printkey + ″ = ″+values0
 %>
   </body>
   </html>

  3.其他api myupload.setallowedfileslist″txtdocxls″

 设定可以上传的文件的后缀名; myupload.setdeniedfileslist″batexecomjsp″ 设定不能上传的文件的后缀名;

  myupload.setmaxfilesize100000 设定单个文件的最大字节数;

   myupload.settotalmaxfilesize100000 设定所有上传文件的最大字节数;

   myupload.uploadinfile″/mydata.txt″ 把表单的内容全部存储到mydata.txt保存;

  myupload.getfiles.getcount 获得上传的文件的个数;

  myupload.getfiles.getsize 获得上传的文件的总字节数;

   myupload.getfiles.getfileid.getfilename 获得指定id号文件的文件名;

   myupload.getfiles.getfileid.getfilepathname 获得指定id号文件的路径名;

   myupload.getfiles.getfile0.ismissing 返回一布尔值以确定用户是否上传了文件。

  四、其他功能 jspsmartupload除了能把上传文件保存到硬盘,还能直接把文件插入到数据库,同时还能实现文件下载的功能,相信随着大家的深入研究,一定能将这一功能更好地应用到自己的实践中去。

 
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:使用JavaBean创建您的网上日历本
· 下一篇:在JSP中使用JavaMail
· WAP中的ASP技术(三)
· 利用MSCHART画图的一段代码
· 简易ASP+注册系统
· 关于web应用程序的范围与session变量丢失问题的深入研究!
· 在ASP中使用SQL语句之5:开始执行


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077