Servlet 知识点(三) -- Servlet 的文件上传功能导致后台取值失败

Servlet 和其他基于 Servlet 框架的文件上传机制有些不同 , Servlet 只能接收 enctype为缺省的 application/x-www-form-urlencoded 类型的数据 , 而现在上传文件都是通过二进制流的方式 ,将 enctype 改为了 enctype=”multipart/form-data” .
所以 request.getParameter(“name”); 是取不到表单传过来的值的 . 对于这个问题 , servlet 给我们提供了一个不是那么优秀的解决方案 – 使用 smartUpload 上传文件
smartUpload 下载地址:
http://download.csdn.net/detail/jacxuan/9880854

SmartUpload su = new SmartUpload();
        su.initialize(this.getServletConfig(), request, response);
        // 上传限制
        su.setMaxFileSize(1024 * 1024 * 10); // 设置大小10MB
        su.upload();
            //保存到指定路径
            su.save("D:\\");
            //获取消息媒体名称
            filePath=su.getFiles().getFile(0).getFileName();
          //取值方式
        String sendOption = su.getRequest().getParameter("sendOption");

        String chooseStyle = su.getRequest().getParameter("chooseStyle");

        String content=su.getRequest().getParameter("content");

使用 smartUpload 上传文件会比平时上传耗费更多的时间 , 不推荐使用 .

你可能感兴趣的:(servlet)