Red de conocimiento informático - Problemas con los teléfonos móviles - Springboot carga archivos para escribir en la base de datos

Springboot carga archivos para escribir en la base de datos

Primero importe el paquete jar correspondiente

lt;! --thymeleaf--gt;lt;dependenciesgt;

lt;groupIdgt;org.thymeleaflt;/groupIdgt;

lt;artifactIdgt;thymeleaf-spring5lt;/artifactIdgt;lt ;dependencia >lt;dependency>lt;

lt;groupIdgt;org.artifactIdgt;thymeleaf-extras-java8timelt;/artifactIdgt;lt;/dependencygt;lt;! --database-connector-gt;lt;dependencygt;

lt;groupIdgt;mysqllt;/groupIdgt;

lt;artifactIdgt;mysql-connector-javalt;/artifactIdgt;lt; /dependenciagt;lt;! --mybatis-integration-springboot--gt;lt;depende de gt;

lt;groupIdgt;org.mybatis.spring.bootlt;/groupIdgt;

lt;artifactIdgt; mybatis -spring-boot-starterlt;/artifactIdgt;

lt;versiongt;2.1.2lt;/versiongt;lt;/dependencygt;lt;! --druid datasource--gt;lt;dependencygt;

lt;groupIdgt;com.alibabalt;/groupIdgt;

lt;artifactIdgt;druidlt;/artifactIdgt;

lt;versiongt;1.1.2lt;/versiongt;lt;/dependencygt;lt;!22lt;/versiongt;lt;/dependencygt;1234567891011121314151617181920212223242526272829

A la fuente de datos, mybatis y subir archivos

p>

primavera:

fuente de datos:

tipo: com.alibaba.druid.pool.DruidDataSource nombre de usuario: root contraseña: shw123zxc URL: jdbc: mysql:/ /localhost :3306/mybatis?useSSL=trueamp; useUnicode=trueamp; caracterEncoding=UTF-8amp; serverTimezone=nombre-clase del controlador UTC: com.mysql.cj.jdbc:

multiparte:

max-request-size: 10 MB #El tamaño total máximo de los archivos cargados

max-file-size: 10 MB #El tamaño máximo de un único archivo cargado max-file-size mybatis:

p>

tipo-alias-p

ackage: cn.codewei.pojo mapper-locations: classpath:/mapper/*.xml1234567891011121314

Luego escriba un archivo para cargar HTML. Tenga en cuenta que el atributo ==enctype del formulario debe configurarse en multipart/. formulario-datos= =

lt;! DOCTYPE htmlgt;lt;html lang="es"gt;lt;headgt;

lt;meta charset="UTF-8"gt;

lt;titlegt;Titlelt;/ titlegt;lt;/headgt;lt;bodygt;

lt;h1gt;Carga de archivoslt;/h1gt;

lt;form método="post" enctype="multipart/form - datos" acción="/upload"gt;

lt; tipo de entrada="archivo" nombre="archivo"gt;

lt; tipo de entrada="enviar" valor= " upload"gt;

lt;/formgt;lt;/bodygt;lt;/htmlgt;1234567891011121314

Luego escribe un Mapper y el Mapper.xml y servicio correspondientes

@Mapper@Repositorypublic interface PhotoMapper {

//Agregar fotos a la base de datos

public int addPhoto(Foto foto);

// Desde Obtener fotos de la base de datos

foto pública getPhotoById(@Param("id") int id);}123456789

lt;?xml version="1.0" encoding="UTF-8 "? gt;lt;!DOCTYPE mapper

PUBLIC "-//mybatis.org//DTD Mapper 3.0//ES"

".codewei.mapper.PhotoMapper"gt;

lt; insertar id="addPhoto" parámetroType="photo"gt;

insertar en valores de imagen (#{id}, #{photo}, #{photoo_name} , # {photoo_type}) lt;/insertgt;

lt;select id="getPhotoById" resultType="photo"gt;

selecciona * de la imagen donde id=#{id } lt ;/selectgt;lt;/mappergt;123456789101112

Llamar al controlador

Subir

@Autowiredprivate PhotoService photoService;@Autowiredprivate Foto foto ;@PostMapping("/upload")@ResponseBodypublic Cadena subida

ad(@RequestParam("file") archivo MultipartFile, solicitud HttpServletRequest) arroja IOException {

byte[] bytes = file.getOriginalFilename());

photo.setPhoto_type(". jpg");

photoService.addPhoto(photo);

Devolver "¡Carga exitosa!";}123456789101112131415161718

Sácalo y muéstralo en la página.

@RequestMapping("/getPhoto") cadena pública getImage(respuesta HttpServletResponse) lanza IOException {

Foto foto = photoService.getPhotoById(1);

byte [ ] photo1 = photo.getPhoto();

PhotoService.addPhoto(photo);

return "¡Carga exitosa! getPhoto();

ServletOutputStream os = respuesta .getOutputStream();

os.write(foto1);

os.close();

return "";}123456789

lt;;DOCTYPE htmlgt;lt.html lang="en"gt;lt;headgt;

lt;meta charset="UTF-8"gt;

lt ; titlegt;Titlelt;/titlegt;lt;/headgt;lt;bodygt;

lt;h1gt;Homelt;/h1gt;

lt;img src="/getPhoto" ancho = "200px" altura="200px"gt;lt;/bodygt;lt;/htmlgt;