2013-10-09 111 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上下文。謝謝您的幫助。 –

相關問題