首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>jsp教程>资讯: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文件的生成与分析

评论总数:2 [ 查看全部 ] 网友评论