我要实现一个上传下载功能,我们把项目部署在linux服务器上,然后我们用户自己的电脑是windows的操作系统,然后想上传文件到10.8.2.6这台windows服务器上,现在的问题是我们只要把项目部署到linux系统正式环境跑的时候,FIil file = new File(localname);InputStream input = new FileInputStream(file);就获不到文件,不能写入流,我的localname是D:\test.xls.请问为什么部署到linux上后就获不到文件了呢?老是说文件不存在或是没有这个目录。

解决方案 »

  1.   

    晕,路径不对,当然找不到了.
    FIil file = new File(localname);InputStream input = new FileInputStream(file);
    程序是在 linux服务器上找文件,你说能找得到吗?目前已经有很多文件上传/下载的开源框架,不用自己写.即使自己写出来了,在性能上也不见得很好.
      

  2.   

    linux目录和windows目录是不同的。D:是windows的目录结构,/是linux或者unix的目录结构。如果客户上传文件上传到linux的服务器上。那么地址就应该换成linux的目录结构,建议使用相对路径。
      

  3.   

    两个系统的文件分隔符 “\”不相同
    换成统一的File.separator就ok了 
      

  4.   

    请问上传的时候File file = new File(localname);InputStream input = new FileInputStream(file);这里是否是从我本机去读文件路径呢,还是在linux上读啊,以上的方法我试过没用的
      

  5.   

    这个是读取服务器上的地址。如果你部署在你本机就是你的地址,也就是windows文件目录格式。如果是linux的话,文件路径就不是什么D:\test.xls了,应该是/root/xxx/ccc/test.xls 之类的路径。
      

  6.   

    那我现在的项目是部署在linux上,我需要将文件上传到windows系统的10.8.2.服务器上的一个文件夹下,请问到底是怎么个实现思路,小妹从来没接触过linux,麻烦指点,谢谢
      

  7.   

    目前我见过的都是单操作系统。没有混合使用的。所以,建议你上网查查。看看这个。http://wenku.baidu.com/view/911adcf6ba0d4a7302763af3.html
      

  8.   

    上传的目录肯定是linux的目录下了!目录肯定是文件夹的形式!project.rootUrl=/usr/local/apache/htdocs/upLoadName