2013-04-05 75 views
0

當用戶選擇文件時,它將存儲在用戶在上傳過程中輸入的具有不同名稱的文件夾中(ProjectConfig文件中已設置的路徑)。 這裏是我的servlet代碼,Java - 以不同名稱上傳文件

new ProjectConfig(); // For setting path for storing image 
    String dealerGalleryPath = ProjectConfig.get("dealergallery"); 
    DiskFileItemFactory factory = new DiskFileItemFactory(); 
    int locationid=2; 
    ServletFileUpload upload = new ServletFileUpload(factory); 
    String fileName = ""; 
    try 
    { 
     java.io.File fnew = null; 
     //System.out.println(getServletContext().getRealPath("/images")); 

     List fileItems = upload.parseRequest(request); 

     Iterator i = fileItems.iterator(); 

     while (i.hasNext()) 
     { 
      FileItem fi = (FileItem)i.next(); 
      if (!fi.isFormField()) 
      { 
       // Get the uploaded file parameters 
       String fieldName = fi.getFieldName(); 
       //System.out.println("Field Name is.."+fieldName); 
       fileName = fi.getName(); 
       if(fi.getName() != null && fi.getName().trim().length() != 0) 
       { 
       //System.out.println("File Name is.."+fileName); 

       String realWebPath = dealerGalleryPath+locationid+"/"+fi.getName(); 

       fnew = new java.io.File(realWebPath); // **What to do here to change name of file??** 
       fi.write(fnew); 
       System.out.println("Success"); 
       //commonutil.setProductimage(fi.getName()); 
       } 
      } 
     } 
     System.out.println("fileName::"+fileName); 
     request.setAttribute("ImageName", fileName); 
     RequestDispatcher rd = request.getRequestDispatcher("/jsp/ImageTesting.jsp"); 
     rd.forward(request, response); 
    }catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 

我了個去,通過在本網站的問題..但din't找到相關的答案。

+0

...但問題是什麼? – kryger 2013-04-09 15:32:19

+0

使用不同名稱@kryger上傳文件 – xtras 2013-04-09 15:45:44

回答

0

下一頁代碼工作正常,謝謝你在前進在我的網站:

filePath = "upload/"; // DIRECTORY IN THE ROOT OF YOUR WEBSITE. 
fileName = fi.getName(); // ORIGINAL FILENAME (YOU DONT WANT IT). 
file = new File(filePath + "newname"); // NEW FILE WITH NEW NAME. 
try { fi.write(file); } // WRITES ORIGINAL FILE INTO NEW FILE. 
catch (Exception ew) { /* HANDLE ERROR HERE */ } 

你的問題是:// 怎麼辦這裏更改文件名? 那麼,你不會改變那裏的任何東西,但是你的代碼中的上面兩行只是改變你想要的新名字的「fi.getName()」。