SmartUpload  smartupload = new SmartUpload();
smartupload.initialize(this.getServletConfig(),request,response);
String imagename = null;
String iname = null;
//准备上传
try {
说这行报错//smartupload.upload() ;
IPTimeStamp ip = new IPTimeStamp();
iname = ip.getIPTimeStampRand()+"."+smartupload.getFiles().getFile(0).getFileExt();
imagename = this.getServletContext().getRealPath("/")+"admin/"+iname;
smartupload.getFiles().getFile(0).saveAs(imagename) ;
} catch (SmartUploadException e) {
e.printStackTrace();
}严重: Servlet.service() for servlet GoodsServlet threw exception
java.lang.NegativeArraySizeException
at org.lxh.smart.SmartUpload.upload(SmartUpload.java:133)
at com.wxw.servlet.GoodsServlet.add(GoodsServlet.java:150)
at com.wxw.servlet.GoodsServlet.doPost(GoodsServlet.java:46)
at com.wxw.servlet.GoodsServlet.doGet(GoodsServlet.java:24)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.wxw.servlet.EncodingFilter.doFilter(EncodingFilter.java:15)
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:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   

    报的是java.lang.NegativeArraySizeException异常,
    数组的size为负值,错误不是出现在smartupload.upload()这一行,虽然提示这行有错误
    你检查一下其他代码,看一下有无异常,或者直接把其他代码全删掉,光执行一下上传代码,这时应该不会有错误
      

  2.   

       这是我的代码,upload.upload()是没有问题的
               //定义SmartUpload对象
                SmartUpload upload = new SmartUpload(); 
                //初始化
                upload.initialize(this.getServlet(), request, response);
                //上传文件
                upload.upload();
                //获取上传文件中的第一个
                SmartFile myFile = upload.getFiles().getFile(0);
                //取得文件名
                String filename = myFile.getFileName();
                //判断是否上传了,没有则返回上传页面
                if(filename.length()==0){
                    request.setAttribute("msg", "请选择要上传的文件!");
                    return mapping.findForward("imprt"); 
                } else{
                    //在服务器上拼接存储上传文件的路径
                    String url=ImportAction.class.getResource("/").toString();
                    int lastIndex=url.length()-16;
                    String filePath=url.toString().substring(6,lastIndex)+"upload/";
                    File f=new File(filePath);
                    f.mkdirs();
                    //存储,SAVEAS_PHYSICAL以操作系统的根目录为文件根目录另存文件
                    myFile.saveAs(filePath+filename, myFile.SAVEAS_PHYSICAL);
                    request.setAttribute("filePath",filePath+filename );
                    //保存文件扩展名
                    request.setAttribute("fileExt",myFile.getFileExt() );
                }
      

  3.   

    在上传页面,表单提交的方式应该为“post” ...
    很久以前遇到过这个问题。。  <form action="UploadTest2.jsp" method="post" enctype="multipart/form-data">
      

  4.   

    你这个报错似乎是说的上传的文件操过了你配置的大小,smartupload是有个最大的文件上传限制的,你的文件操过了就会报错的!你试试小的文件,想图片之类的能不能上传了!
      

  5.   

            request.setCharacterEncoding("GBK");
            SmartUpload su = new SmartUpload();
            su.initialize(this.getServletConfig(), request, response);
    为啥我的是这一行报错
    下面是异常,跪求大神!java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.ecommerce.servlets.CentralServlet.invokeRequest(CentralServlet.java:2307)
    at com.ecommerce.servlets.CentralServlet.processRequest(CentralServlet.java:1879)
    at com.ecommerce.servlets.CentralServlet.doPost(CentralServlet.java:993)
    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 com.business.sitemesh.filter.PageFilter.obtainContent(PageFilter.java:239)
    at com.business.sitemesh.filter.PageFilter.doFilter(PageFilter.java:180)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.business.filter.SetCharacterEncodingFilter.doFilter(Unknown Source:288)
    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:128)
    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:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.NullPointerException
    at com.jspsmart.upload.SmartUpload.initialize(SmartUpload.java:117)
    at cn.net.nvq.zhixie.testLoad.UploadServlet.doGet(UploadServlet.java:29)
    at cn.net.nvq.zhixie.testLoad.UploadServlet.doPost(UploadServlet.java:68)
    at cn.net.nvq.zhixie.command.AppCommand.secondStepupload(AppCommand.java:397)
    ... 28 more