我采用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) { }
}
请大家帮忙,在线等结果,谢谢

解决方案 »

  1.   

    报错了吗?把异常打印出来吧
    catch (Exception ex) { 
    //打印
      

  2.   

    报什么错呢?或者log文件里有什么信息么?
    System.out.println(targetPath); 
    这个打出来是什么?
      

  3.   

    在linux下,运行,并把log打出来,看程序走到哪里停下来了。
      

  4.   

    在action中打印都是没有问题的。System.out.println(targetPath); 打印出来就是linux下的路径,项目中文件夹,这个是没错的,但是就是在服务器上uploadtelnumber,找不到上传的文件,不知道为什么
      

  5.   

    什么权限?是linux下的权限吗?
      

  6.   

      public String insertnumber(File telnumber,String optionValue) {
        
         InputStream isOne=null;
    Workbook rwbOne=null;
    try{
    System.out.println("dao文件:::"+telnumber);
    isOne=new FileInputStream(telnumber);
    System.out.println(":::::isOne:::"+isOn);
    传递到dao层文件中isOne=new FileInputStream(telnumber);这行就出错了。但是这个telnumber、
    路径是正确的
      

  7.   

    我也遇到楼主的问题,刚解决,的确是传说中的linux“权限问题”搞我一个下午!想死的心都有了!
      

  8.   

    这个问题到底怎么解决的,求高手帮忙 。我在linux上也报错,com.opensymphony.xwork2.util.logging。commons.CommonsLogger.info(CommonsLogger.java:31) -Removing file file/home/mail/apache-tomcat-6.0.32/work/Catalina/localhost/sp/upload-6145e9fc_1328478d880__8000_00000003.tmp