2013-10-13 92 views
1

这是我收到的错误:文件上传未找到错误

java.io.FileNotFoundException:C:\用户\用户\应用程序数据\漫游\的NetBeans \ 7.3.1 \ CONFIG \ GF3 \ DOMAIN1 \生成的\ JSP \ uploadRamki \ DATA \ images.jpg(系统找不到指定的路径)

这是我支持bean:

package beans; 

import java.io.IOException; 
import javax.inject.Named; 
import javax.enterprise.context.SessionScoped; 
import java.io.Serializable; 
import javax.servlet.http.Part; 

@Named(value = "demoBean") 
@SessionScoped 
public class DemoBean implements Serializable { 

    private Part file1; 

    public Part getFile1() { 
     return file1; 
    } 

    public void setFile1(Part file1) { 
     this.file1 = file1; 
    } 

    // getters and setters for file1 and file2 
    public String upload() throws IOException { 
     file1.write("c:/data/" + getFilename(file1)); 
     return "success"; 
    } 

    private static String getFilename(Part part) { 
     for (String cd : part.getHeader("content-disposition").split(";")) { 
      if (cd.trim().startsWith("filename")) { 
       String filename = cd.substring(cd.indexOf('=') + 1).trim() 
        .replace("\"", ""); 
       return filename.substring(filename.lastIndexOf('/') + 1) 
        .substring(filename.lastIndexOf('\\') + 1); // MSIE fix. 
      } 
     } 
     return null; 
    } 
} 
+0

我从这个验证码[网络](http://www.ramkitech.com/2013/06/file-upload-is-easy-in-jsf22.html) :http://www.ramkitech.com/2013/06/file-upload-is-easy-in-jsf22.html – Dave

+0

除了将应用程序工件存储在服务器生成的目录中通常是一个糟糕的主意,我没有看到你的代码/ config – kolossus

+0

file1.write(“/ data /”+ getFilename(file1)); 这是我引用位于磁盘上C:/ data文件中的文件夹的位置。我的目的不是将上传的图像存储在该位置,然后将图像路径存储在数据库中。以便我可以在我的应用程序中使用它。 – Dave

回答

0

如果你做part.write它会尝试在glassfish运行的临时目录中写入。

尝试:

 InputStream input = file1.getInputStream(); 
     FileOutputStream output = new FileOutputStream(URL_FILES + file1.getSubmittedFileName()); 
     byte[] buf = new byte[1024]; 
     int len; 
     while ((len = input.read(buf)) > 0) { 
      output.write(buf, 0, len); 
     } 
     input.close(); 
     output.close();