• 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();
                    }   
                 }
            }
        }
    
        
    }
  • 相关阅读:
    Day10
    Python pyspider 安装与开发
    深入理解ES6之《块级作用域绑定》
    深入理解ES6之《扩展对象》
    这些特效对于学习前端我们很有用
    算法之旅 | 选择排序法
    JavaScript读取剪贴板中的表格生成图片
    深入理解ES6之《ES7》
    深入理解ES6之《用模块封装代码》
    php://input,$_POST,$HTTP_RAW_POST_DATA区别
  • 原文地址:https://www.cnblogs.com/haimishasha/p/6834068.html
Copyright © 2020-2023  润新知