关于文件上传服务器开发

一般情况下, 在服务器端可以利用Servlet组件接收客户端数据, 但要注意, 客户端传递的数据类型将决定Servlet
的数据接收方式

1) 传递纯文本数据 , Servlet 可以直接采用request.getParameter的形式接收数据
String 参数值 = request.getParameter(参数名);

2) 2进制数据 + 文本数据, Servlet 可以采用jspsmartupload第3方jar包接收数据
jspSmartUpload是一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点:
1、使用简单。在JSP文件中仅仅书写三五行java代码就可以搞定文件的上传或下载,方便。
2、能全程控制上传。利用jspSmartUpload组件提供的对象及其操作方法,可以获得全部上传文件的信息(包括文件名,大小,类型,扩展名,文件数据等),方便存取。
3、能对上传的文件在大小、类型等方面做出限制。如此可以滤掉不符合要求的文件。
4、下载灵活。仅写两行代码,就能把Web服务器变成文件服务器。不管文件在Web服务器的目录下或在其它任何目录下,都可以利用jspSmartUpload进行下载

注意事项:
1) Servlet 只要处理doPost就可以, 因为文件上传不能用get
2) 把 jspsmartupload.jar 拷贝到项目的libs目录中
3) 文件上传核心代码

// 1. 创建SmartUpload对象

    SmartUpload su = new SmartUpload();

// 2. 对su进行初始化

    su.initialize(this.getServletConfig(), 
            request, response);
    PrintWriter out = response.getWriter();

    try {
  • // 指定文件的大小限制

        //su.setMaxFileSize(1024*100); // 单一一个文件的最大长度
        //su.setTotalMaxFileSize(1024*200);  // 所有文件的长度总和限制
        su.setAllowedFilesList("jpg,png,bmp");  // 允许上传的文件扩展名
    
  • // 3. 接收文件数据

        su.upload();
    
  • // 4. 保存文件到指定目录并且得到文件的数量

        int count = su.save("/upload");// webroot目录中
    
  • // 要注意, 最后要去到tomcat我们的项目upload目录中查看图片

  • // 5. 获取剩下的文本数据 **

        String name = su.getRequest().getParameter("name");
        String cls = su.getRequest().getParameter("cls");
        name = URLDecoder.decode(name, "UTF-8");
        cls = URLDecoder.decode(cls, "UTF-8");
    
    
        System.out.println("文件数量"+count+"  "+name+"    "+cls);
        out.println("success");
    } catch (SmartUploadException e) {
        // TODO Auto-generated catch block
        System.out.println(e.getMessage());
        e.printStackTrace();
        out.println("error");
    }  
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值