1.如果只上传文件图片这方面出错的话,那是因为上传路径乱码问题,上传Path不要含中文和空格。一般tomcat安装在默认路径program files下都可能出错,因为中间有个空格。解决方法是对上传路径进行编码处理String path=URlDecoder.decoder(路径.getPath(),"UTF-8");
2.注意文件和数据同时上传与单独上传的不同方法

解决方案 »

  1.   

    InputStreamReader  read = new InputStreamReader (new FileInputStream(f),"UTF-8");文件IO操作和操作系统 默认编码有关,一般配置的都是gbk,你要指定utf-8编码才行。
      

  2.   

    上传或下载时都使用UTF-8编码
      

  3.   

    Tomcat/bin/catalina.bat中开始部分(大概51行处)添加set CATALINA_OPTS=-Dfile.encoding=UTF-8
    或CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF-8"
      

  4.   

    Tomcat里面也要设置编码方式的,server.xml:
    <Connector port="9998" maxHttpHeaderSize="8192"
        maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
        enableLookups="false" redirectPort="8443" acceptCount="100"
        connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='UTF-8'/>
    建议楼主试一下。
      

  5.   

    <Connector port="9998" maxHttpHeaderSize="8192"
      maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
      enableLookups="false" redirectPort="8443" acceptCount="100"
      connectionTimeout="20000" disableUploadTimeout="true" URIEncoding='UTF-8'/>
    这里面要改改看
      

  6.   

    问题解决了,总结下:
    由于采用的是netbeans,调试运行的时候,netbeans自动启动tomcat,调用的配置文件是:
    C:\Documents and Settings\windows_loginusername\.netbeans\6.5\apache-tomcat-6.0.18_base\conf下的配置文件,
    这个可以在netbeans-服务-服务器-tomcat6.0.18-属性,连接-catalina基目录中看到,这里的server.xml配置和tomcat安装目录下的不同:
    netbeans的配置:<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8084" protocol="HTTP/1.1" redirectPort="8443"/>
    tomcat安装的配置:<Connector connectionTimeout="20000" port="8084" protocol="HTTP/1.1" redirectPort="8443"/>修改tomcat安装路径下的配置后就ok了。另外发现个问题,上传处理文件,测试时候没有任何问题,但是发布后就报错,原来我在处理文件的时候取了文件的扩展名:
    fileExtName = sourceFileName.substring(sourceFileName.lastIndexOf("."));
    测试的时候:sourceFileName=G:\CBS\myprogram\build\web\upload\uploadtmp\***.extname;
    这样带扩展名和不带扩展名的文件处理都没问题,但是发布后,由于tomcat的安装目录是:
    C:\Program Files\Tomcat6.0.18;
    则:sourceFileName = C:\Program Files\Tomcat6.0.18\webapps\myprogram\build\web\upload\uploadtmp\***.extname;
    有扩展名的文件处理没有问题,没有扩展名的文件则成:
    fileExtName = 18\webapps\myprogram\build\web\upload\uploadtmp\***;
    就会报错了,文件找不到。所以尽管测试通过了,并不代表程序没有问题,要充分考虑测试环境和实际发布环境的差别!!!