有个从CSV导入数据的功能,我在JSP页面上用一个file控件选择要导入的文件,然后从流里面把CSV文件里的数据读出来存到数据库里,在我自己电脑上发布测试都很好没问题,但是项目一发布到Linux的服务器上这个功能就挂掉了,在IE下,选择CSV文件后点上传,无反应,在Firefox和Chrome下提示请选择文件路径,难道是在Linux下路径有问题?

解决方案 »

  1.   

    linux下的csv文件跟windows下的不一样,你把linux拷贝出来跟windows下的比较一下就知道了
      

  2.   

    不知道你读取文件是什么方式,估计是文本读取,binary读取一般没问题。
    有几种可能会导致你的程序在linux下出问题,
    ①直接把路径写死了,windows⇒¥ linux⇒/
    解决办法,使用file.separator
    ②换行符,,windows⇒CR+LF linux⇒LF
    解决办法,使用line.separator
    ③读取和写入时没有明确指定字符集。windows⇒gb2312 linux⇒UTF8..
      

  3.   


    我是在JS里获取的CSV文件路径,然后把路径传递给Action,Action再通过BufferedReader读取文件
    下面是JS获取路径的方法//获取文件真实路径
    function getPath(obj){
    if(obj){
    if (window.navigator.userAgent.indexOf("MSIE")>=1){
    obj.select();
    return document.selection.createRange().text;
    }
    else if(window.navigator.userAgent.indexOf("Firefox")>=1){
    if(obj.files){
    return obj.files.item(0).getAsDataURL();
    }
    return obj.value;
    }
    return obj.value;
    }
    }
      

  4.   

    我估计问题还是出在这个路径上...字符集都是用的UTF-8
      

  5.   

    问题是Linux服务器上没有字符集,我把Windows上的黑体字拷贝上去了,然后就好了