请问我上传文件的时候,FIil file = new File(localname);InputStream input = new FileInputStream(file);是否是读本机的文件,我们项目部署在linux上以后老是报找不到文件,怎么回事啊

解决方案 »

  1.   

    FIil file = new File(localname);我想知道你这个 “localname”是神马 ? 
      

  2.   


    你写的localname应该是你本地的文件路径
    这样是不对的,你应该写个文件流,把你本地的文件首先上传到服务器
    linux上找不到文件?
    是否windows上正常,如果是的话
    那就是文件路径不对,windows路径方式是"\",linux是"/",2者是相反的,具体百度下linux的路径到底是
      

  3.   

    我前段时间也遇到了这样的问题!本机上可以正常运行!部署到linux上以后老是报找不到文件,抛异常!弄了两天才搞定,原来是上传文件夹的权限问题!你可以试一下!仅供参考!呵呵!
      

  4.   

    windows路径方式是"\",linux是"/",2者是相反的
    同时windows下的是采用的d:或是c:的某个文件
    linux下采用的是文件夹的方式,存放数据的
      

  5.   

    找不到文件么,多半是你路径的问题
    linux路径示例:
    /usr/local/myprog/func.sh
      

  6.   

    请问你是怎么实现的呢,我用FTP方式也是这样,你是不是首先把文件保存到linux服务器上,然后再上传呢???很想知道你怎么实现的
      

  7.   

    我要做的效果是我们项目部署在linux上,可是我要上传到10.8.2.6 windows系统指定的一个共享文件夹里面,我在windows上测试是没问题的,可以上传的。一部署到linux上就不行了,我是不是应该先把文件上传到linux服务器上,然后再从linux上传到windows 呢?
      

  8.   

    public class UploadAction extends ActionSupport implements Serializable{
    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    /**
     * 文件上传文件名为file+FileName固定写法
     */
    private File[] file;
    private String[] fileFileName;
    private String[] fileContentType; public String[] getFileFileName() {
    return fileFileName;
    } public File[] getFile() {
    return file;
    } public void setFile(File[] file) {
    this.file = file;
    } public void setFileFileName(String[] fileFileName) {
    this.fileFileName = fileFileName;
    } public String[] getFileContentType() {
    return fileContentType;
    } public void setFileContentType(String[] fileContentType) {
    this.fileContentType = fileContentType;
    }

    public String execute() throws Exception {
    for (int i = 0; i < this.file.length; i++) {
    System.out.println(i);
    InputStream is = new FileInputStream(this.file[i]);
    // request.getRealpath()方法已经过时
    // String root = ServletActionContext.getRequest().getRealPath("/upload");
    String str = ServletActionContext.getServletContext().getRealPath("/upload");
    File f = new File(str, this.fileFileName[i]);
    OutputStream os = new FileOutputStream(f); byte[] b = new byte[10000000];
    while (is.read(b) != -1) {
    System.out.println(b.length);
    os.write(b, 0, b.length);
    }
    is.close();
    os.close();
    }
    return SUCCESS;
    }
    }批注:”/upload“是在webroot目录下键的一个文件夹,上传成功后,在服务器webapps目录下,该项目webroot下的upload文件夹下,就会有你上传的文件了,一旦服务器关闭,那么这里面上传的文件会自动消失,它会随着webcontext容器的销毁,而销毁掉。