データベースの画像アドレス (OSS アドレス) をクエリして圧縮パッケージにパックしてユーザーに送信するか、複数のユーザーにクエリを実行して各ユーザーの写真をフォルダに入れ、そのフォルダを圧縮パッケージにパックして送信します。ユーザー(デザイン画合成、ファイルio、リアルプロジェクト詳細説明)

package com.xhsoft.exam.controller;

import com.xhsoft.exam.to.ExamOralTO;
import com.xhsoft.util.ZipUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import jodd.io.ZipUtil;
import lombok.AllArgsConstructor;

import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;

import org.apache.commons.io.FileUtils;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.IoUtil;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestParam;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xhsoft.exam.entity.ExamOral;
import com.xhsoft.exam.vo.ExamOralVO;
import com.xhsoft.exam.wrapper.ExamOralWrapper;
import com.xhsoft.exam.service.IExamOralService;
import org.springblade.core.boot.ctrl.BladeController;

import java.awt.image.BufferedImage;
import java.io.*;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.Charset;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

/**
 * 口腔检测结果表 控制器
 *
 * @author com.xhsoft
 * @since 2023-06-29
 */
@RestController
@AllArgsConstructor
@RequestMapping("/exam/examoral")
@Api(value = "口腔检测结果表", tags = "口腔检测结果表接口")
public class ExamOralController extends BladeController {

	private IExamOralService examOralService;

	/**
	 * 详情
	 */
	@GetMapping("/detail")
	@ApiOperationSupport(order = 1)
	@ApiOperation(value = "详情", notes = "传入examOral")
	public R<ExamOralVO> detail(ExamOral examOral) {
		ExamOral detail = examOralService.getOne(Condition.getQueryWrapper(examOral));
		return R.data(ExamOralWrapper.build().entityVO(detail));
	}


	/**
	 * 分页 口腔检测结果表
	 */
	@GetMapping("/list")
	@A

おすすめ

転載: blog.csdn.net/weixin_42759398/article/details/131605097
おすすめ