要实现批量下载图片,可以按照以下步骤进行操作:\n\n1. 在前端页面中,使用Layui的表格组件展示数据,并添加一个下载按钮。\n2. 在点击下载按钮时,通过Ajax请求将选中的图片地址发送到后端。\n3. 在Spring Boot后端中,接收到请求后,根据接收到的图片地址,将图片文件下载到本地临时目录中。\n4. 将下载到本地的图片文件打包为一个压缩文件。\n5. 返回压缩文件的下载地址给前端。\n\n以下是示例代码:\n\n前端页面代码(使用Layui):\nhtml\n<table class="layui-table" id="data-table">\n <!-- 表格内容 -->\n</table>\n<button class="layui-btn layui-btn-sm" id="download-btn">下载选中图片</button>\n\n<script>\n// 点击下载按钮\n$('#download-btn').click(function() {\n var selectedUrls = [];\n // 获取选中的行数据\n var checkStatus = table.checkStatus('data-table');\n checkStatus.data.forEach(function(item) {\n selectedUrls.push(item.url); // 假设图片地址存储在url字段中\n });\n\n // 发送Ajax请求\n $.ajax({\n type: 'POST',\n url: '/download',\n data: JSON.stringify(selectedUrls),\n contentType: 'application/json',\n success: function(res) {\n // 下载成功后处理\n }\n });\n});\n</script>\n\n\nSpring Boot后端代码:\njava\nimport org.springframework.util.FileCopyUtils;\nimport java.io.File;\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.util.List;\nimport java.util.zip.ZipEntry;\nimport java.util.zip.ZipOutputStream;\n\n@RestController\npublic class DownloadController {\n @PostMapping("/download")\n public String downloadImages(@RequestBody List<String> imageUrls) {\n try {\n // 创建临时目录\n File tempDir = new File("/path/to/temp/dir");\n tempDir.mkdirs();\n\n // 下载图片到临时目录\n for (String imageUrl : imageUrls) {\n String filename = imageUrl.substring(imageUrl.lastIndexOf('/') + 1);\n File imageFile = new File(tempDir, filename);\n URL url = new URL(imageUrl);\n FileUtils.copyURLToFile(url, imageFile);\n }\n\n // 压缩图片文件\n File zipFile = new File(tempDir, "images.zip");\n try (ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(zipFile))) {\n for (File imageFile : tempDir.listFiles()) {\n ZipEntry zipEntry = new ZipEntry(imageFile.getName());\n zipOut.putNextEntry(zipEntry);\n FileInputStream fileIn = new FileInputStream(imageFile);\n FileCopyUtils.copy(fileIn, zipOut);\n fileIn.close();\n }\n }\n\n // 返回压缩文件的下载地址给前端\n return zipFile.getAbsolutePath();\n } catch (Exception e) {\n // 处理异常\n return null;\n }\n }\n}\n\n\n请根据实际情况修改代码中的路径和字段名。

SpringBoot Layui 批量下载云数据库存储图片 - 实现步骤及代码示例

原文地址: https://www.cveoy.top/t/topic/qC2v 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录