2013-10-09 88 views
0

下面是我用来上传文件到服务器的代码。但代码抛出一个异常目录或文件未找到..上传文件到服务器抛出文件或目录未找到异常

   ResourceBundle rs_mail = ResourceBundle.getBundle("mail"); 
       String upload_path = rs_mail.getString("upload_path"); 
       File file = null; 
       FileItemFactory factory = new DiskFileItemFactory(); 
       ServletFileUpload upload = new ServletFileUpload(factory); 
       // Parse the request to get file items. 
       List fileItems = upload.parseRequest(request); 

       // Process the uploaded file items 
       Iterator i = fileItems.iterator(); 
       while (i.hasNext()) { 
        FileItem fi = (FileItem) i.next(); 
        File uploadDir = new File(upload_path); 
        if (!uploadDir.exists()) { 
         uploadDir.mkdir(); 
        } 
        file = new File(upload_path + file.separator + fi.getName()); 

        fi.write(file); 
       } 

任何一个可以指出该异常的原因..属性文件

内容

upload_path = ../../../upload

+2

异常很清楚:“找不到目录或文件。”您是否尝试过调试代码以确定哪些文件或目录不存在? – Vulcan

+0

在此行中引起异常fi.write(file); –

+0

'upload_path'是普通文件而不是目录吗? 'fi'有没有斜杠? – chrylis

回答

1

请确保您还创建路径上的所有父目录upload_path

if (!uploadDir.exists()) { 
    uploadDir.mkdirs(); 
} 

请注意使用mkdirs()而不是mkdir()。如果父结构不存在,则mkdir()将失败。 mkdirs()也会尝试创建所需的父目录。

您还应该检查返回值,如果无法创建目录,两种方法都会返回false

+0

好的。将检查并回复给你 –

+0

乌尔回答帮助我。但问题的道路。我试图在tomcat中创建一个文件夹。 Ubuntu阻止了它。我应该考虑servlet上下文。谢谢您的帮助。 –

相关问题