• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    如何解决在jsp页面上导入.xls文件报错问题
    POST TIME:2021-10-18 07:47
    在jsp页面上导入.xls文件,报错:
    java.io.IOException: Posted content type isn't multipart/form-data
    at com.oreilly.servlet.multipart.MultipartParser.init>(MultipartParser.java:166)
    at com.oreilly.servlet.MultipartRequest.init>(MultipartRequest.java:222)
    at org.apache.jsp.dxt.sms.multi_005fsender.upload_jsp._jspService(upload_jsp.java:406)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at sdcncsi.ict.security.AclFilter.doFilter(AclFilter.java:78)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at sdcncsi.ict.web.RequestFilter.doFilter(RequestFilter.java:108)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)
    不知道是什么原因?应该怎样来解决呢?
    解决这个错误,需要在form表单里面加上加enctype=”multipart/form-data” 这个属性,不过表单请求传到另一个jsp或servlet里时,是不能用request.getParameter()来获取到各个表单元素的值的,如下:
    复制代码 代码如下:

    %@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    %@ page session="false"%>
    %@ include file="/common/taglibs.jsp"%>
    %@ include file="/common/meta.jsp"%>
    %@ include file="/common/js.jsp"%>
    %@ page import="java.util.*"%>
    %@ page import="java.text.SimpleDateFormat"%>
    %@ page import="sdcncsi.ict.util.SysPara"%>
    %@page import="java.io.*,java.util.*,sdcncsi.ict.base.attachment.*"%>
    %@ page import="sdcncsi.ict.util.RequestUtil"%>
    %@page import="com.oreilly.servlet.MultipartRequest"%>
    %
    String res="true";
    request.setCharacterEncoding("UTF-8");
    response.setContentType("text/html; charset=UTF-8");
    String file=(String)request.getParameter("t_file_excel");
    //System.out.println(file);
    String accountid3=(String)request.getParameter("accountid3");
    String saveDirectory = "";
    //获取配置参数,文件类型,文件大小
    /*String date = "";
    SimpleDateFormat gs = new SimpleDateFormat("yyyyMMdd");
    Date now = new Date();
    date = gs.format(now);*/
    FileFuns fileFuns = new FileFuns();
    try {
    //判断文件类型
    String file_type=SysPara.getValue("dxt_sms_multi_sender_file_type");
    if(!file.substring(file.lastIndexOf(".")+1).equals(file_type))
    {
    out.println("script>");
    out.println("alert('错误:文件类型错误!');");
    out.println("/script>");
    return;
    }
    //判断文件夹是否存在,不存在创建
    String file_path = SysPara.getValue("dxt_sms_multi_sender_file_path");
    file_path=file_path.replace("\\","//");
    if (!fileFuns.getFileIsExists(file_path)) {
    fileFuns.Createdir(file_path);
    }
    String file_size = SysPara.getValue("dxt_sms_multi_sender_file_size");
    //文件上传后,保存在saveDirectory
    saveDirectory = file_path;
    RandomFileRenamePolicy rfrp = new RandomFileRenamePolicy();
    MultipartRequest multi = null;
    System.out.println("saveDirectory"+saveDirectory);
    System.out.println("file_size"+file_size);
    multi = new MultipartRequest(request, saveDirectory, Integer
    .parseInt(file_size), "utf-8", rfrp);
    System.out.println("222"+multi);
    //输出反馈信息
    Enumeration files = multi.getFileNames();
    while (files.hasMoreElements()) {
    String name = (String) files.nextElement();
    File f = multi.getFile(name);
    if (f != null) {
    String fileName = multi.getFilesystemName(name);
    saveDirectory+=fileName;
    }
    }
    } catch (Exception eu) {
    res="false";
    eu.printStackTrace();
    out.println("script>");
    out.println("alert('错误:文件大小超出限制!');");
    out.println("/script>");
    }
    %>
    head>
    script type="text/javascript">
    function myunload(){
    window.opener.callback_getPageData_table_list(1);
    }
    /script>
    base target="_self">
    /head>
    body onunload="myunload()">
    a id="reload" href='' style="display:none">/a>
    /body>
    script>
    var res='%=res%>';
    if(res=='true')
    {
    sys_ajaxPost("/dxt/multi_sender.do?method=importmulti_senderaccountid=%=accountid3%>excelpath=%=saveDirectory %>","",function(msg){
    if(msg.result==true){
    location.href="${ctx}/dxt/sms/multi_sender/multi_sender.jsp?result=true";
    }else{
    location.href="${ctx}/dxt/sms/multi_sender/multi_sender.jsp?result=false";
    }
    });
    }
    /script>
    上一篇:jsp内置对象及方法详细介绍
    下一篇:Struts html:checkbox框初始默认是选中的解决方法
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信