日期:2014-05-18  浏览次数:20698 次

Struts2上传文件问题,在linux下出错
我采用struts2,上传在windows下是没有问题的,但是在linux下上传,我在服务器上的项目路径找不到上传的文件,
是不是我代码写的有问题?
  private File myFile;// 实际上传文件

private String myFilecontentType;// 文件的内容类型

private String myFileFileName;// 上传文件名
private String optionValue;

private static int BUFFER_SIZE = 16 * 1024;

*/
public String importCustomer()
{
System.out.println(":::::::::导入数据::::::::");
System.out.println("uploadFileName::"+this.myFileFileName);
System.out.println(optionValue);//页面下拉框传进的值
String myFileFileNameNew = new Date().getTime() + "_" + myFileFileName;// 毫秒数+文件姓名
 
String targetPath = ServletActionContext.getServletContext().getRealPath("/")+"uploadtelnumber"+File.separator+myFileFileNameNew;
System.out.println(targetPath);
File targetFile = new File(targetPath);
copyFile(this.myFile, targetFile);
String importResult = customerService.importnumber(targetFile,this.optionValue);
System.out.println(importResult);

if(null == importResult || importResult.equals("")){

return "false";
}
if(importResult.equals("1")){
return "false";
}
else{
return "importResult";
}

}
public void copyFile(File src, File target) {
InputStream is = null;
OutputStream os = null;
byte[] number = new byte[BUFFER_SIZE];
try {
is = new BufferedInputStream(new FileInputStream(src), BUFFER_SIZE);
os = new BufferedOutputStream(new FileOutputStream(target),
BUFFER_SIZE);
while (is.read(number) > 0) {
os.write(number);
}
os.close();
is.close();
} catch (Exception ex) {

}
}
请大家帮忙,在线等结果,谢谢

------解决方案--------------------
报错了吗?把异常打印出来吧
catch (Exception ex) { 
//打印
}
------解决方案--------------------
报什么错呢?或者log文件里有什么信息么?
System.out.println(targetPath); 
这个打出来是什么?
------解决方案--------------------
在linux下,运行,并把log打出来,看程序走到哪里停下来了。
------解决方案--------------------
可能是文件夹访问权限的问题,你看看权限是否设置好。