SpringMVC圖片上傳與顯示


 


@RestController
@Scope("prototype")
@RequestMapping("/xxxx/xxx/main")
public class JobPicControl {
    
    @Autowired
    private xxxService xxxService;/** 
     * @description 上傳圖片
     * @param file
     * @param request
     * @return 
     */
    @RequestMapping(value = "/base/xxx/upload", method = RequestMethod.POST)
    public String uploadMap(@RequestParam(value = "file", required = false) MultipartFile file, 
            @RequestParam(value = "xxx", required = false) String xxx, HttpServletRequest request) {
        Response response = new Response();
        if (file.isEmpty()) {
            return "文件上傳失敗,請重試";
        } else {
            System.out.println("========================================");
            System.out.println("文件長度: " + file.getSize());
            System.out.println("文件類型: " + file.getContentType());
            System.out.println("文件名稱: " + file.getName());
            System.out.println("文件原名: " + file.getOriginalFilename());
            System.out.println("========================================");
        }
        String filePath = "/fileLibrary/jobTypePics/";
        String realPath = request.getSession().getServletContext().getRealPath(filePath);
        
        String fileNewName = xxx+ ".jpg"; 
        System.out.println("fileNewName:"+fileNewName);
        
        //保存  
        try {  
            //這里不必處理IO流關閉的問題,因為FileUtils.copyInputStreamToFile()方法內部會自動把用到的IO流關掉,我是看它的源碼才知道的  
            FileUtils.copyInputStreamToFile(file.getInputStream(), new File(realPath, fileNewName));
             
        } catch (Exception e) {  
            e.printStackTrace();
            return response.failure("更新圖失敗,請重試").toSimpleResult();
        } 
        
       return "成功";
        
    }

    
    /** 
     * @description 流的方式得到圖片
     * @param request
     * @param httpResponse 
     */
    @RequestMapping(value = "/base/xxx/getPic", method = RequestMethod.GET)
    public void getMapPic1(@RequestParam(value = "iconUrl", required = false) String jobIconUrl,HttpServletRequest request,HttpServletResponse httpResponse) {
        String realPath = request.getSession().getServletContext().getRealPath(iconUrl);
        String filePath = realPath;
        System.out.println("filePath:"+filePath);
        File file = new File(filePath);
        FileInputStream fis = null;
        try {
            
            httpResponse.setContentType("image/gif");
            OutputStream out = httpResponse.getOutputStream();
            fis = new FileInputStream(file);
            byte[] b = new byte[fis.available()];
            
            fis.read(b);
            out.write(b);
            out.flush();
        } catch (Exception e) {
             e.printStackTrace();
        } finally {
            if (fis != null) {
                try {
                   fis.close();
                } catch (IOException e) {
                e.printStackTrace();
                }   
             }
        }
    }

    
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM