html中文件上传储存到本地路径

第一步:写html文件

姓名:
年龄:
头像:

这上面这个html代码,里面可以上传一个头像的文件 

如果是上传文件的话,需要注意的是,提交方式必须是post =》 method=“post”。 后面的 enctype(提交表单时使用何种编码类型)这个的类型必须为 multipart/form-data =》 enctype=“multipart/form-data” , 这个才会将整个文件给传送到后端去,如果使用的是默认的编码类型,传输的则是文件的名称

必须注意上面的这两点

第二步:java本地储存

先看代码

@PostMapping("/upload")
public Result upload(String username, Integer age,MultipartFile image) throws Exception{
    log.info("文件上传:{},{},{}",username, age, image);
    // 获取原始文件名   - 1.jpg  1.2.3.jpg
    String originalFilename = image.getOriginalFilename();   //getName()。这个方法获取的是表单项的名字

    // 构造唯一的文件名(不能重复) --uuid(通用唯一识别码)
    int index = originalFilename.lastIndexOf(".");   // 获取到的是最后一个点所处在的位置
    String extname = originalFilename.substring(index);  //直接截取到文件的后缀名
    String newFileName = UUID.randomUUID().toString() + extname;
    log.info("获取到的新的文件名:{}", newFileName);

    // 将文件储存到服务器的磁盘目录中。E:\image
    image.transferTo(new File("E:\\image\\"+newFileName));
    
    return Result.success();
}

上面的代码中,首先用MultipartFile对象去接受从网页传来的文件数据对象,获取到原始的文件名,保存在指定的路径之上,我们用uuid来做唯一标识,来作为文件名.其中后缀名用字符串中的一些方法获取.

但是文件最大传输大小问1M,那该怎么办呢?

可以在配置中配置如下配置

# 配置单个文件最大上传大小
spring.servlet.multipart.max-file-size=10MB
# 配置单个请求最大上传大小(一次请求可以上传多个文件)
spring.servlet.multipart.max-request-size=100MB

你可能感兴趣的:(日常小问题,学习新知识争做新青年,html,java,开发语言)