栏目导航
热点推荐
- 测试你对技术的掌握度:JSP程序
- Eclipse 3.0 上配置JSP开发环境
- Jsp基础知识总结
- 整合Tomcat4.1和IIS5 直到能够正
- JSP服务器的安装与配置(带数据库
- 在JSP环境中如何配置和使用fcked
- JSP中表单数据存储的通用方法
- 在JSP环境中如何来配置和使用fck
- Oracle数据库和JSP连接要注意的
阅览排行
Jsp页面实现文件上传下载
www.jz123.cn 2008-09-02 来源: 中国建站 袁袁整理 我要投递新闻
return value;
}
public String[] getParameters(String name){
if ( name == null || name.trim().length() == 0 )
return null;
if ( paramHt.get(name) == null )
return null;
ArrayList al = (ArrayList)paramHt.get(name);
String[] strArr = new String[al.size()];
for ( int i=0;i<al.size();i++ )
strArr[i] = (String)al.get(i);
return strArr;
}
public int getUpdFileSize(){
return updFileArr.size();
}
public String[] getUpdFileNames(){
String[] strArr = new String[updFileArr.size()];
for ( int i=0;i<updFileArr.size();i++ )
strArr[i] = (String)updFileArr.get(i);
return strArr;
}
private String getFileName(String input){
int fIndex = input.lastIndexOf("\\");
if (fIndex == -1) {
fIndex = input.lastIndexOf("/");
if (fIndex == -1) {
return input;
}
}
input = input.substring(fIndex + 1);
return input;
}
private String getFileNameByTime(String input){
int index = input.indexOf(".");
Date dt = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
return input.substring(0,index) + sdf.format(dt) + input.substring(index);
}
}
说明:
这个类基本解决了上一贴的上一贴说的存在的bug和不足。主要做了如下修正。
用户可以设定文件上传的路径,这里没有用request对象的getRealPath方法来取得相对路径,而是用了绝对路径。是一个小败笔。因为有时候用户只是得到服务器的一个应用,而不知道整个服务器的路径。但是既然getRealPath自己可以得到,用户自己取得也可以。
在文件上传处理的时候,预先进行了check,把一些可能出现的造成上传失败的情况拍查掉。避免该类出现不该出现的异常。
捕获了IO异常,避免文件上传的时候出现异常时程序的不友好表现
提供了方法返回form表单中其他参数的取得,模拟了HttpServletRequest对象的getParameter和getParameters方法(后面这个方法是叫这个名字么-_-b),取得Parameter的名称的方法没有提供,是个小缺陷。
提供了方法返回上传的文件的件数和上传的文件名,方便用户作其他操作。
现在介绍下JSP页面中如何用这个类实现上传。
首先,要把这个类编译后的class文件拷贝到WEB-INF/classes/目录下。注意保持package的结构。
在jsp页面中引用这个类
<%@page import="com.vogoal.util.JspFileUpload"%>
<%
//初始化
JspFileUpload jfu = new JspFileUpload();
//设定request对象
jfu.setRequest(request);
//设定上传的文件路径
jfu.setUploadPath("C:\\");
//上传处理
int rtn = jfu.process();
//取得form中其他input控件参数的值
String username = jfu.getParameter("username");
//如果对应同一个参数有多个input控件,返回数组
String[] usernameArr = jfu.getParameters("username");
//取得上传的文件的名字
String[] fileArr = jfu.getUpdFileNames();
//取得上传文件的个数,这个方法有点鸡肋
int fileNumber = jfu.getUpdFileSize();
//下面的是测试输出的代码。
// out.println("parameter:" + username);
上一篇:JSP网站开发环境的目录结构标准 下一篇:Jsp常用功能:CSV文件的生成与分析