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();
                }   
             }
        }
    }

    
}

  

posted @ 2019-05-30 10:47  Lily姐姐  阅读(769)  评论(0编辑  收藏  举报