zoukankan      html  css  js  c++  java
  • 项目总结37:Java上传图片保存到Oracle以及读取图片

    项目总结37:Java上传图片保存到Oracle以及读取图片

    1-实体类-封装图片数据

    package com.hzsun.shr.web.maintenance.entity.image;
    
    /* *
     *@Description:
     *@Author:TYJ
     *@Date: create in  2019/8/8 14:17
     */
    
    
    public class ImageCenter{
    
        private String imageId;
        private byte[] content;//用byte[]接收图片数据
    
        public ImageCenter() {
        }
    
        public ImageCenter( byte[] content,String userId) {
            this.imageId = System.currentTimeMillis() + "";
            this.content = content;
        }
    
        public String getImageId() {
            return imageId;
        }
    
        public void setImageId(String imageId) {
            this.imageId = imageId;
        }
    
        public byte[] getContent() {
            return content;
        }
    
        public void setContent(byte[] content) {
            this.content = content;
        }
    }

     2-controller-保存图片(前端fform表单上传图片即可)和读取图片(直接返回流)

    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.InputStream;
    import java.io.OutputStream;
    
    
    @RestController
    @RequestMapping("/api/image/")
    public class ApiImageCenterController{
        @Autowired
        private IImageCenterService iImageCenterService;
    
        /**
         *@描述 1-保存图片
         *@参数
         *@返回值
         *@创建人  TangYujie
         *@创建时间  2019/8/6 14:30
         */
        @RequestMapping(value="/save",method = RequestMethod.POST)
        public Object saveImage(
                @RequestParam(value = "file", required = true) MultipartFile file,
                HttpServletRequest request
        ) throws Exception {
    
    
            try {
                //保存图片
                byte[] pictureData = null;
                InputStream inputStream = file.getInputStream();
                pictureData = new byte[(int) file.getSize()];
                inputStream.read(pictureData);
                ImageCenter saveImag = new ImageCenter(pictureData,userId);
                iImageCenterService.insert(saveImag);//此步骤为保存图片;
    
                ///返回数据
                String key = "imageId";
                return ResponseMessageTypeEnum.CODE_SUCCESS.appendSingleDataToMap(key,saveImag.getImageId());
            } catch (Exception e) {
                e.printStackTrace();
                return ResponseMessageTypeEnum.CODE_FAILURE.appendEmptyData();
    
            }
        }
        /**
         *@描述 2-查找图片
         *@参数
         *@返回值 直接返回流
         *@创建人  TangYujie
         *@创建时间  2019/8/8 15:26
         */
        @RequestMapping(value="/get/{imageId}",method=RequestMethod.GET)
        public void getPhotoById (@PathVariable("imageId")String imageId, final HttpServletResponse response) throws Exception{
            ImageCenter imageCenter = iImageCenterService.selectByPrimaryKey(imageId);
            byte[] data = imageCenter.getContent();
            response.setContentType("image/jpeg");
            response.setCharacterEncoding("UTF-8");
            OutputStream outputSream = response.getOutputStream();
            outputSream.write(data);
            outputSream.flush();
        }
    }

    3-mapper.xml

        <!-- 新增-->
        <insert id="insert" parameterType="ImageCenter" keyColumn="image_id"
                keyProperty="imageId">
            insert into s_image_center(
            "image_id",
            "content"
            ) values (
            #{imageId},
            #{content}
            )
        </insert> 

    4-数据库设计

  • 相关阅读:
    oracle闪回某个时间段的数据
    查询某个表某个字段重复记录急重复数量
    调用腾讯QQ启动
    MongoDB笔记(二):MongoDB下Shell的基本操作
    MongoDB笔记(一):MongoDB介绍及Windows下安装
    freemarker相关
    oracle获取时间毫秒数
    如何简单地理解Python中的if __name__ == '__main__'
    python套接字基本使用
    Mysql表的约束设计和关联关系设计
  • 原文地址:https://www.cnblogs.com/wobuchifanqie/p/11739487.html
Copyright © 2011-2022 走看看