问答详情
源自:3-1 使用SmartUpload实现文件批量上传

为什么页面提交的流都是空格

<form action="UpdloadServlet"  method="post" enctype="multipart/form-data">
          请选择图片:<input  name="myfile" type="file" />
          <input type="submit" value="提交"  />${result}
      </form>

提问者:qq_我17岁_0 2016-04-20 23:55

个回答

  • 慕函数0662299
    2016-10-10 18:16:44

    是 SmartUpload 要导入其 jar 包,你的 form 的 action 应该是 action="smartUploadServlet.do",而不是原来的 action="uploadServlet.do",注意 web.xml 的配置:

     <servlet>

        <servlet-name>SmartUploadServlet</servlet-name>

        <servlet-class>com.imooc.servlet.SmartUploadServlet</servlet-class>

      </servlet>

      <servlet-mapping>

        <servlet-name>SmartUploadServlet</servlet-name>

        <url-pattern>/smartUploadServlet.do</url-pattern>

      </servlet-mapping>

    最后,SmartUploadServlet 类的 doPost方法应该是这样:

    public void doPost(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {


    //设置上传文件保存路径

    String filePath = getServletContext().getRealPath("/")+"images/";

    File file = new File(filePath);

    if(!file.exists()){

    file.mkdir();

    }

    SmartUpload su = new SmartUpload();

    //初始化对象

    su.initialize(getServletConfig(), request, response);

    //设置上传文件大小

    su.setMaxFileSize(1024*1024*10);

    //设置所有文件的大小

    su.setTotalMaxFileSize(1024*1024*100);

    //设置允许上传文件类型

    su.setAllowedFilesList("txt,jpg,gif");

    String result="上传成功!";

    //设置禁止上传的文件类型

    try{

      su.setDeniedFilesList("rap,jsp,js");

      //上传文件

      su.upload();

      

      int count = su.save(filePath);

      System.out.println("上传成功" + count + "个文件!");

      

    }catch (Exception e) {

    result = "上传失败!";

    if(e.getMessage().indexOf("1015") != -1){

    result = "上传失败:上传文件类型不正确!";

    }else if(e.getMessage().indexOf("1010") != -1){

    result = "上传失败:上传文件类型不正确!";

    }else if(e.getMessage().indexOf("1105") != -1){

    result ="上传失败:上传文件大小大于允许上传的最大值!";

    }else if(e.getMessage().indexOf("1110") != -1){

    result ="上传失败:上传文件总大小大于允许上传总大小的最大值!";

    }

    e.printStackTrace();

    }

    for(int i=0;i < su.getFiles().getCount();i++){

    com.jspsmart.upload.File tempFile = su.getFiles().getFile(i);

    System.out.println("--------------------");

    System.out.println("表单当中 name 的值:"+tempFile.getFieldName());

    System.out.println("上传文件名:"+tempFile.getFileName());

    System.out.println("上传文件的大小:"+tempFile.getSize());

    System.out.println("上传文件的拓展名:"+tempFile.getFileExt());

    System.out.println("上传文件全名:"+tempFile.getFilePathName());

    System.out.println("--------------------");

    }

    request.setAttribute("result", result);

    request.getRequestDispatcher("jsp/02.jsp").forward(request, response);

    }

    这样就绝对不会错了!