2013-04-05 3 views
0

사용자가 파일을 선택하면 업로드 중에 사용자가 입력 한 다른 이름으로이 파일이 폴더 (ProjectConfig 파일에 이미 설정된 경로)에 저장됩니다. 여기 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

+0

다른 이름으로 @kryger 파일 업로드 – xtras

답변

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()"을 원하는 새 이름으로 변경합니다.

관련 문제