jsp上传图片代码如下:
String img=ImgForm.getImg().getFileName();
String imgok="upload/"+temp+"."+(img.split("\\.")[1])+"";
String path=this.getServlet().getServletContext().getRealPath("/")+"img\\"+"."+(img.split("\\.")[1]);上传imgok为空时,出现以下异常:
java.lang.ArrayIndexOutOfBoundsException: 1
请教大家解决的方法?

解决方案 »

  1.   

    split是想取后缀吧。
    如果你是struts提交的话,有没有把form里的这个input与action form绑定呢?
    检查下form标签有没有"enctype="multipart/form-data"
    看下ImgForm的属性有没有和上传那的name一致.
    萎缩点把img print 出来
      

  2.   


    打印出来看看你得到的是什么?下边这句报错吧,它从零开始的
    String path=this.getServlet().getServletContext().getRealPath("/")+"img\\"+"."+(img.split("\\.")[1]);
      

  3.   

    String imgok="upload/"+temp+"."+(img.split("\\.")[1])+"";这句也是,应该是从零开始的,改成这样
    String imgok="upload/"+temp+"."+(img.split("\\.")[0])+"";
      

  4.   

    img.split("\\.")[1])+"";
    先判断 img是否包含 . 符号 有了在分割,取值是img.split("\\.")[0])
    而不是img.split("\\.")[1])
      

  5.   

    alert(img); //取到的文件名
    alert(img.split("\\.").length);//取到的文件名被 . 分隔后的数组
      

  6.   

    1.判断img 
    2. String[] arr=img.split("\\.");
       String str=arr.length>1?arr[1]:arr[0];
    以后用str 取代img.split("\\.")[1]
      

  7.   

    picName.split("\\.")[1]中,这个对象如果是""的话,就会出现数组越界,请问这个应该怎么处理?
      

  8.   

    picName.split("\\.")这个返回值的类型是数组,数组的下标是从零开始的,picName.split("\\.")[1]是数组中的第二个值,你必须得保证返回的数组的长度大于等于2,才不会报数组下标越界.不过在用split()函数之前,你得判断一下,看看picName是否为null,而且picName.length()得大于0.
    String[] str;
    String string="";
    if(picName!=null&&picName.length()>0){
       str=picName.split("\\.");
      if(str.length>2){
        string=picName.split("\\.")[1];
      }
    }
      

  9.   

    if(img!=""){
    }
    不就可以了
      

  10.   

    1.判断img 
    2. String[] arr=img.split("\\.");
      String str=arr.length>1?arr[1]:arr[0];
    以后用str 取代img.split("\\.")[1]
      

  11.   

    应该是img 为空的时候出现的异常吧/
    在执行split之前判断一下就可以了。
      

  12.   


       String imgok="upload/"+temp+"."+img.substring(img.indexOf("."))+"";