2013-04-05 74 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()”。

相关问题