From b0b9a8f3c2840d25c4cfe336bbefaaa56e11b69f Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 13 二月 2025 14:31:51 +0800 Subject: [PATCH] 小程序登录 --- ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TencentCosUtil.java | 64 ++++++++++++++++++++++++++------ 1 files changed, 52 insertions(+), 12 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TencentCosUtil.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TencentCosUtil.java index af76a4f..1d02134 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TencentCosUtil.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TencentCosUtil.java @@ -13,14 +13,18 @@ import com.qcloud.cos.model.PutObjectResult; import com.qcloud.cos.region.Region; import com.qcloud.cos.utils.IOUtils; +import com.ruoyi.common.utils.WebUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.ServletOutputStream; +import javax.servlet.http.HttpServletResponse; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.util.Base64; import java.util.UUID; /** @@ -117,31 +121,36 @@ return null; } } -// https://xzgttest-1305134071.cos.ap-chengdu.myqcloud.com/xizang/e4ea88b8-5470-456e-bf97-75cf47f38e84.jpg - public static void main(String[] args) throws IOException { - // 1 初始化用户身份信息(secretId, secretKey)。 + + /** + * 下载文件 + * @param file + * @return + */ + public void downLoadFile(String file) { + HttpServletResponse response = WebUtils.response(); + String replace = file.replace(rootSrc, ""); + response.setHeader("Access-Control-Expose-Headers","File-Type"); COSCredentials cred = new BasicCOSCredentials( - "AKIDCF5EF2c0DE1e5JK8r4EGJF4mNsMgp26x", - "lLl184rUyFOOE0d5KNGC3kmfNsCWk4GU"); + secretId, + secretKey); // 2.1 设置存储桶的地域(上文获得) - Region region = new Region("ap-chengdu"); + Region region = new Region(bucketAddr); ClientConfig clientConfig = new ClientConfig(region); // 2.2 使用https协议传输 clientConfig.setHttpProtocol(HttpProtocol.https); COSClient cosClient = new COSClient(cred, clientConfig); - String key = "/xizang/e4ea88b8-5470-456e-bf97-75cf47f38e84.jpg"; try { // 5. 下载文件并获取输入流 - InputStream inputStream = cosClient.getObject("xzgttest-1305134071", key).getObjectContent(); - + InputStream inputStream = cosClient.getObject(bucketName, replace).getObjectContent(); + ServletOutputStream outputStream = response.getOutputStream(); // 6. 处理输入流,例如读取内容或保存到本地文件 // 这里仅作示例,实际应用中需要根据需求处理输入流 byte[] buffer = new byte[1024]; int len; - ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); while ((len = inputStream.read(buffer)) != -1) { // 处理读取到的数据 - System.out.write(buffer, 0, len); + outputStream.write(buffer, 0, len); } } catch (Exception e) { e.printStackTrace(); @@ -150,5 +159,36 @@ cosClient.shutdown(); } } - + public String downLoadFileImg(String file) { + byte[] data = null; + String replace = file.replace(rootSrc, ""); + COSCredentials cred = new BasicCOSCredentials( + secretId, + secretKey); + // 2.1 设置存储桶的地域(上文获得) + Region region = new Region(bucketAddr); + ClientConfig clientConfig = new ClientConfig(region); + // 2.2 使用https协议传输 + clientConfig.setHttpProtocol(HttpProtocol.https); + COSClient cosClient = new COSClient(cred, clientConfig); + try { + // 5. 下载文件并获取输入流 + InputStream inputStream = cosClient.getObject(bucketName, replace).getObjectContent(); + ByteArrayOutputStream swapStream = new ByteArrayOutputStream(); + // 6. 处理输入流,例如读取内容或保存到本地文件 + byte[] buffer = new byte[1024]; + int len; + while ((len = inputStream.read(buffer)) != -1) { + // 处理读取到的数据 + swapStream.write(buffer, 0, len); + } + data = swapStream.toByteArray(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + // 7. 关闭输入流 + cosClient.shutdown(); + } + return Base64.getEncoder().encodeToString(data); + } } \ No newline at end of file -- Gitblit v1.7.1