1.前端upload.html
三要素:
①method="post"
②enctype="mutipart/form-data"
③type="file"
2. 后端UploadController.java
①服务端接收文件 参数:MultipartFile image
②获取原始文件名
③获取文件扩展名
④运用uuid构造唯一文件名
⑤将文件存储在服务器的磁盘目录
import com.itheima.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
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;
@Slf4j
@RestController
public class UploadController {
//本地存储文件
@PostMapping("/upload")
public Result upload(String username, Integer age, @RequestParam("image") MultipartFile file) throws IOException {
log.info("文件上传:{},{},{}", username, age, file);
//获取原始文件名
String originalFilename = file.getOriginalFilename();
//获取文件扩展名 123.2.1.jpg
int index = originalFilename.lastIndexOf("."); //最后一个.的下标
String extname = originalFilename.substring(index);
//构造唯一的文件名(不能重复) -- uuid(通用唯一识别码)040bf482-284b-40a6-bf61-15c811d1b0d0
String newFilename = UUID.randomUUID().toString() + extname;
log.info("新的文件名:{}", newFilename);
//将文件存储在服务器的磁盘目录中 D:\demo\files
file.transferTo(new File("D:\\demo\\files\\"
+ newFilename));
return Result.success();
}
}
注意:若上传的文件过大会报错,需在application.propertis或yml文件中配置文件大小
启动服务器,测试:
请求成功!查看D:\demo\files也有对应上传的文件
相关阅读
发表评论