2016-03-25 2 views
1

um. Ich muss ein Bild von der Benutzeroberfläche hochladen und den Namen entsprechend ändern.Benennen Sie die Datei beim Hochladen auf webapp im Frühjahr mit dem MultiPartFile-Datentyp

dh wenn der Benutzer ein Bild mit einem Namen WIN_20151122_09_57_47_Pro.jpg uploads würde ich es ändern muß

zu 1.jpg

I Spring MVC verwenden und für Datei-Upload und angezeigt Ich bin mit MultiPartFile Datentyp

Unten ist das Modell.

FileBucket.java 

package com.faisal.model; 

import org.springframework.web.multipart.MultipartFile ; 

public class FileBucket { 

     MultipartFile file ; 

     public MultipartFile getFile() { 
      return file ; 
     } 

     public void setFile(MultipartFile file) { 
      this.file = file; 
     } 
} 

Der Controller Teil, wo ich auf dem Server die Datei bin Hochladen

@Autowired 
     ServletContext servletContext; 

@RequestMapping(value = "/singleUpload" , method = RequestMethod.POST) 
     public String singleFileUpload(@Valid FileBucket fileBucket, 
        BindingResult result, ModelMap model) throws IOException { 

      String PROFILE_UPLOAD_LOCATION = servletContext.getRealPath("/") 
         + File. separator + "resources" + File.separator 
         + "profile_images" + File.separator; 

      if (result .hasErrors()) { 
        System. out.println("validation errors"); 
        return "singleFileUploader" ; 
      } else { 
        System. out.println("Fetching file"); 
        String destination=PROFILE_UPLOAD_LOCATION 
           + fileBucket.getFile().getOriginalFilename(); 

        File file = new File(destination); 
        File newFile=new File(PROFILE_UPLOAD_LOCATION +"1.jpg"); 


        FileCopyUtils. copy(fileBucket.getFile().getBytes(), file); 
        FileUtils. moveFile(file, newFile); 


        MultipartFile multipartFile = fileBucket .getFile(); 
        String fileName = multipartFile .getOriginalFilename(); 
        model.addAttribute("fileName" , fileName); 
        return "success" ; 
      } 
     } 

Seite anzeigen

<body> 
     <div class="success" > 

     <img src=" ${pageContext.request.contextPath}/resources/profile_images/${fileName} " height ="100" width="100" /> 
     <br/> 
      File <strong> ${fileName}</strong > uploaded successfully. 
     </div> 

</body> 

In dem obigen Code ich erfolgreich die Datei umbenannt haben, aber dann während Umleitung auf auf derselben Seite wird das Bild nicht angezeigt, da es durch 1.jpg ersetzt wurde

+0

Try '' wie dieses ''. Hier ist, wie ich [UserController] (https://github.com/RawSanj/spring-tiles-sample-app/blob/master/src/main/java/com/sanjay/springtiles/controller/UserController.java) und in implementiert habe jsp view ' User Image ' –

+0

hier ist die Sache einfacher: 1. Hochladen einer Datei auf dem Server (was durchgeführt wird) 2.Laden der Datei und Umbenennen auf der Serverseite zu besser geeignet Name (Dies versuche ich jetzt zu erreichen) –

+0

@SanjayRawat dies löste mein Problem, bitte schreibe eine Antwort, damit ich sie annehmen kann. –

Antwort

1

Tr y <spring:url> wie folgt <img src='<spring:url value="/resources/profile-pictures/${user.profileImage}" />' >.

Hier ist, wie ich implementiert UserController und in jsp Ansicht <img src='<spring:url value="/resources/profile-pictures/${user.profileImage}" />' alt="User Image">

+0

Ich habe ein anderes Problem festgestellt, wo das gleiche Stück Code in einem Teil des Controllers funktioniert und nicht in einem anderen hier ist der Link zu meiner Frage werfen Sie bitte einen Blick http://StackOverflow.com/questions/36250863/cannot-convert -value-of-type-java-lang-Zeichenfolge-zu-erforderlich-Typ-org-Springfram –

Verwandte Themen