当前位置: 代码迷 >> Java Web开发 >> java 文件上传报错 求解决
  详细解决方案

java 文件上传报错 求解决

热度:270   发布时间:2016-04-14 21:16:46.0
java 文件上传出错 求解决

报错信息
获取上传文件:            gfOA数据库--ly.doc
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1932)
at servlet.UploadFileServlet.doGet(UploadFileServlet.java:169)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at dispatcher.SimpleDispatcherServlet.doGet(SimpleDispatcherServlet.java:40)
at dispatcher.SimpleDispatcherServlet.doPost(SimpleDispatcherServlet.java:66)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
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 dispatcher.Encoding.doFilter(Encoding.java:22)
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)
##D:\apache-tomcat-6.0.32\webapps\nnxdcredit\uploadfile\creditfileTable\1427353453780.doc


代码块
if(isYes){
      //构建文件目录及文件
      File file = new File(savePath);
      if(!file.exists()){
      file.mkdirs();
      }
                    //创建一个File   
//                     File file = new File(savePath + "\\" + name);   
                    try {    
                     //重命名文件
//              String filename = UUID.randomUUID().toString(); 
                    String filename = new Date().getTime()+"" ; 
             File savefile = new File(savePath + filename +"."+ extension);
                        //写入文件   
                        item.write(savefile);   
                        savePathName = savefile.getPath();
                      //截取路径,删掉前面的tomcat路径 fcgcredit 改SQL
             //int l = savePathName.lastIndexOf("nnxdcredit");
             int l = savePathName.lastIndexOf("fcgcredit"); //第169行
                        savePathName = savePathName.substring(l,savePathName.length());
                      
             //增加'/'
             savePathName = "/"+savePathName;
             //转换'/'
             savePathName = savePathName.replace("\\", "/"); 
            
             //如果是信用表格上传,则保存路径
             if(uploadtype.equals("creditfileTable")){
             new ReadXMLorPorpertiesUtils().writePorperties2("wordUpload.properties", "creditfileTableURL", savePathName);
             }
             //如果是广告上传,则保存路径
             if(uploadtype.equals("swfURL")){
             new ReadXMLorPorpertiesUtils().writePorperties2("swfURL.properties", "swfURL", savePathName);
             }
            
                    } catch (Exception e) {   
                        e.printStackTrace();   
                    }   
------解决思路----------------------
调试看看吧。
越界。
  相关解决方案