二死了
按照书上的例题做了个Struts2上传页面,使用的是FileUtils.copyFile()方法,一切准备停当后上传了一张图片测试,结果报错了!!!
HTTP Status 500 - Invalid argument
!!!!无效参数!为毛是无效啊,仔细检查了类文件,拷贝方法如下:
String targetDirectory = ServletActionContext.getRequest().getSession().getServletContext().getRealPath("/upload");
File target = new File(targetDirectory, uploadFileFileName);
FileUtils.copyFile(uploadFile, target);
return "register";
不对吗??是绝对路径写错了,还是备份文件生成错了??检查了半天没分析出来,最后的最后我把copyFile方法换成write方法试了试,还是报错,不过这次报错问题就很明显了!
HTTP Status 500 - F:\Tomcat\AZ\webapps\Struts3.1\upload\QQ??20160225214207.jpg (文件名、目录名或卷标语法不正确。)------------------------------------------------------------------------
找到问题所在了,就是我上传的文件名中含有中文,阿西吧!后面就很简单修改过来了,然后我又去看了File 类的构造方法,这次我使用的就是
public File(String parent, String child)
构造方法里的parent和child都是路径名字符串,所以不能包含中文!!