2013-04-05 4 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

+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()» для нового имени, которое вы хотите.

Смежные вопросы