SpringBoot integración de ganado siete en la nube para archivo y carga de imágenes

Alrededor de siete ganado nube aplicación de almacenamiento de registro y no descritos en detalle aquí, una gran cantidad de tutoriales en línea y la solicitud de registro, así como el espacio de almacenamiento es relativamente simple. Directamente a la pregunta, hablar de la integración de la cosas.

application.yml perfil

qiniu:
    accessKey: xxxx-xxxx-xxxx
    secretKey: xxxx_xxxx-xxxx
    bucket: rongdi
    path: http://up-z1.qiniup.com  # 每个地区的地址都不一样

Los anteriores siete parámetros correspondientes a bovina dispuestos debajo de la nube
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción
Aquí Insertar imagen Descripción

subir archivos e imágenes para crear una clase de configuración

@Data
@Component
@ConfigurationProperties(prefix = "qiniu")
public class QiNiuYunConfig {

    @Value("${accessKey}")
    private String accessKey;
    @Value("${secretKey}")
    private String secretKey;
    @Value("${bucket}")
    private String bucket;
    @Value("${path}")
    private String path;


    public String uploadImgToQiNiu(FileInputStream file, String filename) {
        // 构造一个带指定Zone对象的配置类,注意后面的zone各个地区不一样的
        Configuration cfg = new Configuration(Zone.zone1());
        // 其他参数参考类注释
        UploadManager uploadManager = new UploadManager(cfg);
        // 生成密钥
        Auth auth = Auth.create(accessKey, secretKey);
        try {
            String upToken = auth.uploadToken(bucket);
            try {
                Response response = uploadManager.put(file, filename, upToken, null, null);
                // 解析上传成功的结果
                DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);

                // 这个returnPath是获得到的外链地址,通过这个地址可以直接打开图片
                String returnPath = getPath() + "/" + putRet.key;
                return returnPath;
            } catch (QiniuException ex) {
                Response r = ex.response;
                System.err.println(r.toString());
                try {
                    System.err.println(r.bodyString());
                } catch (QiniuException ex2) {
                    //ignore
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }
}

capa Controller

@Controller
public class QiNiuYunController {

    @Autowired
    private QiNiuYunConfig qiNiuYunConfig;

    @GetMapping("/upload")
    public String upload(){
        return "upload";
    }

    @PostMapping("/qiniu")
    public String qiNiuYunUpload(@RequestParam("file")MultipartFile file,
                                 Model model) throws IOException {
        String filename = file.getOriginalFilename();
        FileInputStream inputStream = (FileInputStream) file.getInputStream();
        //为文件重命名:uuid+filename
        filename = UUID.randomUUID()+ filename;
        String link = qiNiuYunConfig.uploadImgToQiNiu(inputStream, filename);
        model.addAttribute("link", link);
        return "upload";
    }
}

código HTML

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>上传文件</title>
</head>
<body>
<form action="/qiniu" method="post" enctype="multipart/form-data">
    <label>上传图片</label>
    <input type="file" name="file"/>
    <input type="submit" value="上传"/>
    <p>回显图片:</p>
    <img th:src="${link}"/>
</form>
</body>
</html>

Los resultados son como sigue

Aquí Insertar imagen Descripción

Publicados 141 artículos originales · ganado elogios 131 · vistas 210 000 +

Supongo que te gusta

Origin blog.csdn.net/qq_41621362/article/details/105282178
Recomendado
Clasificación