写项目时会存在大量的重复业务,不想重复的自己coding,就需要去cv。这里存放常用的功能代码,进行二次开发。
说明
- 这里只给出后端的代码,前端页面的请求用postman或其他应用。
- springboot应用
- 结合目录与CTRL + f,可以快速定位到指定需求
目录
- 文件上传
文件上传
代码展示
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;
@Slf4j
@RestController
public class Upload2Controller {
@PostMapping("/upload")
public String up(String nickname, MultipartFile phone, HttpServletRequest request) throws IOException {
log.info("nickname: {}", nickname);
log.info("phone的原始名字: {}", phone.getOriginalFilename());
log.info("phone的文件类型: {}", phone.getContentType());
String path = request.getServletContext().getRealPath("/upload/");
log.info("获取服务器路径:{}", path);
//仅是存放在服务器临时生成的文件夹中,需要使用流读取存放到自定义的路径中
//或者这里的路径就写入自定义路径
saveFile(phone, path);
return "上传成功";
}
private void saveFile(MultipartFile phone, String path) throws IOException {
log.info("判断路径是否存在,不存在就创建");
File dir = new File(path);
if (!dir.exists()) {
dir.mkdir();
}
File file = new File(path + phone.getOriginalFilename());
//MultipartFile的方法,将对象转存到指定路径
phone.transferTo(file);
}
}
代码说明
- 引入依赖:无依赖,代码中只使用了日志依赖,整体上无其他依赖
- TODO
-
存储路径问题:当前代码中的存储路径是动态的,每次启动服务器,Tomcat的临时存储路径都会发生变化。因此,建议使用固定的存储路径,而不是依赖于Tomcat临时目录。可以将文件保存到应用程序的特定目录或外部目录中。
-
存储文件问题:当前代码中使用phone.transferTo(file)将文件保存到本地磁盘上。这种方式适用于小文件的保存,但对于大文件可能会导致内存溢出。为了更好地处理大文件,可以采用流式处理的方式,使用InputStream和OutputStream进行文件的读取和写入。
-