Java 在spring中使用MultiPartFile数据类型在webapp上上载时重命名文件

Java 在spring中使用MultiPartFile数据类型在webapp上上载时重命名文件,java,spring,spring-mvc,Java,Spring,Spring Mvc,我必须从用户界面上传图像,并根据需要更改其名称 i、 e.如果用户上传的图像名为WIN_20151122_09_57_47_Pro.jpg,我必须将其更改为1.jpg 我使用的是SpringMVC,对于文件上传和显示,我使用的是MultiPartFiledatatype 下面是模型 FileBucket.java package com.faisal.model; import org.springframework.web.multipart.MultipartFile ; public

我必须从用户界面上传图像,并根据需要更改其名称

i、 e.如果用户上传的图像名为WIN_20151122_09_57_47_Pro.jpg,我必须将其更改为1.jpg

我使用的是SpringMVC,对于文件上传和显示,我使用的是
MultiPartFile
datatype

下面是模型

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;
      }
}
在服务器上上载文件的控制器部分

@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" ;
            }
      }
查看页面

<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>


文件${fileName}已成功上载。
在上面的代码中,我已成功重命名了文件,但在同一页面上重定向时,图像未显示,因为它已被1替换。jpg


下面是我如何实现的,并在jsp视图中
'alt=“User Image”>

像这样尝试
。下面是我如何实现的,在jsp视图中,alt=“User Image”>以更简单的方式实现:1。在服务器上上传文件(已完成)2.上传文件并在服务器端将其重命名为更合适的名称(我现在正在尝试完成)@SanjayRawat这解决了我的问题,请写一个答案,这样我就可以接受。我遇到了另一个问题,同一段代码在控制器的一个部分工作,而在另一个部分不工作。这里是我的问题的链接,请看一看