java 上传图片及访问图片

9 篇文章 0 订阅
package com.fmkj.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.*;

/**
 * @Auther: MQS
 * @Date: 18/09/06 15:51
 * @Description:
 */
@Component
public class ImageUtil {

    private static Logger logger = LoggerFactory.getLogger(ImageUtil.class);

    private static String location = "F:/image/userphoto/";

    /**
     *  上传图片
     * @param multipartFile
     * @return
     */
    public static String upload(MultipartFile multipartFile){

        if (multipartFile.isEmpty() || StringUtils.isEmpty(multipartFile.getOriginalFilename())){
            return null;
        }
        String contentType = multipartFile.getContentType();
        if (!contentType.contains("")){
            return null;
        }
        String root_fileName = multipartFile.getOriginalFilename();
        logger.info("上传图片:name={},type={}",root_fileName, contentType);
        String fileName = StringUtils.getUUID() + ".png";
        try {
            File file = new File(location);
            if (!file.exists()) {
                file.mkdirs();
            }
            FileInputStream fileInputStream = (FileInputStream) multipartFile.getInputStream();
            BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream(location +"/"+ fileName));
            byte[] bs = new byte[1024];
            int len;
            while ((len = fileInputStream.read(bs)) != -1){
                bufferedOutputStream.write(bs, 0, len);
            }
            bufferedOutputStream.flush();
            bufferedOutputStream.close();
            return fileName;
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }

    /**
     *  获取图片流
     * @param name
     * @param response
     */
    public static void show(String name, HttpServletResponse response){
        try {
            response.setContentType("image/png");
            File file = new File(location + name);
            FileInputStream inputStream = new FileInputStream(file);
            if (inputStream != null){
                //得到文件大小
                int i = inputStream.available();
                byte[] data = new byte[i];
                //读数据
                inputStream.read(data);
                inputStream.close();
                OutputStream outputStream = response.getOutputStream();
                outputStream.write(data);
                outputStream.close();
            }
        }catch (IOException e){
            e.printStackTrace();
        }
    }



}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shiro to kuro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值