ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/COSController.java
@@ -37,12 +37,20 @@ String url = tencentCosUtil.upLoadFile(file); return R.ok(url, url); } @PostMapping("/downloadImg") @ApiOperation(value = "文件下载", tags = "公共-文件下载") @ApiImplicitParams({ @ApiImplicitParam(value = "文件url", name = "url", dataType = "String", required = true) }) public String downloadImg(@RequestParam("url") String url) { return tencentCosUtil.downLoadFileImg(url); } @PostMapping("/download") @ApiOperation(value = "文件下载", tags = "公共-文件下载") @ApiImplicitParams({ @ApiImplicitParam(value = "文件url", name = "url", dataType = "String", required = true) }) public void upload(@RequestParam("url") String url) { public void download(@RequestParam("url") String url) { tencentCosUtil.downLoadFile(url); } } ruoyi-admin/src/main/java/com/ruoyi/web/controller/api/TContractController.java
ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TencentCosUtil.java
@@ -24,6 +24,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.Base64; import java.util.UUID; /** @@ -129,6 +130,7 @@ 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( secretId, secretKey); @@ -157,5 +159,36 @@ cosClient.shutdown(); } } // https://xzgttest-1305134071.cos.ap-chengdu.myqcloud.com/xizang/e4ea88b8-5470-456e-bf97-75cf47f38e84.jpg 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); } } ruoyi-system/src/main/java/com/ruoyi/system/model/TContract.java
@@ -127,9 +127,9 @@ private Integer status; @ApiModelProperty(value = "内存大小多个文件逗号拼接") @TableField("memory") private Integer memory; private String memory; @ApiModelProperty(value = "附件名称 逗号拼接") @TableField("contract_file_name") private Integer contractFileName; private String contractFileName; } ruoyi-system/src/main/resources/mapper/system/TContractMapper.xml
@@ -53,6 +53,8 @@ <if test="query.status != null"> and t1.status = #{query.status} </if> AND t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> </select> ruoyi-system/src/main/resources/mapper/system/THouseMapper.xml
@@ -41,6 +41,7 @@ <if test="req.leaseStatus != null"> and t1.lease_status = #{req.leaseStatus} </if> AND t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </where> </select> <select id="userHistoryList" resultType="com.ruoyi.system.vo.HouseVO"> @@ -61,6 +62,8 @@ left join t_tenant t2 on t1.tenant_id = t2.id LEFT JOIN t_house t3 on t3.id = t1.house_id where t1.house_id = #{req.id} AND t1.disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()} </select> </mapper>