本文介绍: UUID 是通用唯一标识符(Universally Unique Identifier)的缩写,它是一种标识符,被设计为在任何情况下都可以唯一地标识一个实体。UUID 是一种 128 位的数字,通常由特定的算法根据网络主机、时间戳、随机数、计数器等因素生成。由于 UUID 的设计初衷是唯一性,因此 UUID 在全球范围内都是唯一的。

1、pom.xml

  <dependencies> 
    <dependency> 
      <groupId>org.springframework</groupId>  
      <artifactId>spring-context</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>org.springframework</groupId>  
      <artifactId>spring-webmvc</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>jakarta.platform</groupId>  
      <artifactId>jakarta.jakartaee-web-api</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>com.fasterxml.jackson.core</groupId>  
      <artifactId>jackson-databind</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>org.projectlombok</groupId>  
      <artifactId>lombok</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>org.hibernate.validator</groupId>  
      <artifactId>hibernate-validator</artifactId> 
    </dependency>  
    <dependency> 
      <groupId>org.hibernate.validator</groupId>  
      <artifactId>hibernate-validator-annotation-processor</artifactId> 
    </dependency>

    <dependency>
      <groupId>commons-fileupload</groupId>
      <artifactId>commons-fileupload</artifactId>
    </dependency>

  </dependencies>

2、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
	version="4.0">

	<servlet>
		<servlet-name>DispatcherServlet</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<param-value>classpath:springmvc.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>

		<multipart-config>
			<!-- 定义文件上传时所需的最大值,单位为字节 -->
			<max-file-size>10485760</max-file-size>
			<!-- 定义单个上传文件的最大值,单位为字节 -->
			<max-request-size>20971520</max-request-size>
			<!-- 定义内存中存储文件的最大值,超过此大小的文件会写入到硬盘中 -->
			<file-size-threshold>5242880</file-size-threshold>
		</multipart-config>

	</servlet>

	<servlet-mapping>
		<servlet-name>DispatcherServlet</servlet-name>
		<url-pattern>/</url-pattern>
	</servlet-mapping>

	<context-param>
		<param-name>uploadDir</param-name>
		<param-value>E:/springmvc_upload</param-value>
	</context-param>

</web-app>

3、springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd
       http://www.springframework.org/schema/mvc
       https://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package="com.atguigu.controller"/>
    <mvc:default-servlet-handler/>
    <mvc:annotation-driven>
        <mvc:message-converters>
            <bean class="org.springframework.http.converter.StringHttpMessageConverter"><!-- 默认编码是iso-8859-1 -->
                <property name="supportedMediaTypes">
                    <list>
                        <value>text/plain;charset=utf-8</value>
                        <value>text/html;charset=utf-8</value>
                    </list>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

    <!--spring6.x下的文件上传下载处理器-->
    <!-- 文件上传处理器,可处理 multipart/* 请求并将其转换为 MultipartFile 对象-->
    <bean id="multipartResolver"
          class="org.springframework.web.multipart.support.StandardServletMultipartResolver">
    </bean>
</beans>

4、index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/upload" method="post" enctype="multipart/form-data">
    昵称:<input type="text" name="nickName" value="龙猫" /><br/>
    头像:<input type="file" name="headPicture" /><br/>
    <button type="submit">上传</button>
</form>
</body>
</html>

5、UploadController.java

package com.atguigu.controller;
import jakarta.servlet.ServletContext;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.UUID;
@RestController
@RequestMapping("/upload")
public class UploadController {

    @Autowired
    private ServletContext servletContext;

    @PostMapping
    public String upload(String nickName, @RequestPart("headPicture") MultipartFile headPicture) throws IOException {
        String uploadDirPath = servletContext.getInitParameter("uploadDir");
        File uploadDirFile = new File(uploadDirPath);
        if (!uploadDirFile.exists() || !uploadDirFile.isDirectory()) {
            uploadDirFile.mkdirs();
        }
        headPicture.transferTo(new File(uploadDirPath+"/"+ UUID.randomUUID().toString() +"_"+headPicture.getOriginalFilename()));
        return "succ";
    }
}

6、UUID

UUID 是通用唯一标识符(Universally Unique Identifier)的缩写,它是一种标识符,被设计为在任何情况下都可以唯一地标识一个实体。UUID 是一种 128 位的数字,通常由特定的算法根据网络主机、时间戳、随机数、计数器等因素生成。由于 UUID 的设计初衷是唯一性,因此 UUID 在全球范围内都是唯一的。

UUID的作用是用来唯一标识某个信息或对象。它们可以被用于许多不同的场合,例如:

  1. 数据库中的主键:在数据库使用UUID可以确保没有两个记录具有相同的主键,从而防止数据冲突和重复。

  2. 识别设备:UUID可以用来识别设备或计算机,确保每台设备都有唯一的标识符。

  3. 软件开发:在软件开发中,UUID可以用来标识不同的组件、插件模块,从而有助于管理和维护代码库。

  4. 分布式系统:在分布式系统中,UUID可以用来标识不同的节点进程,从而协调和管理系统中的各种活动。

总之,UUID是确保系统中不同信息或对象具有唯一标识符的一种有效方式,可以帮助避免数据冲突和重复,并提高系统的可靠性和稳定性。

原文地址:https://blog.csdn.net/m0_65152767/article/details/134653721

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_532.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注