0
点赞
收藏
分享

微信扫一扫

Java后端常用功能组件(持续更新)

写项目时会存在大量的重复业务,不想重复的自己coding,就需要去cv。这里存放常用的功能代码,进行二次开发。

说明

  • 这里只给出后端的代码,前端页面的请求用postman或其他应用。
  • springboot应用
  • 结合目录与CTRL + f,可以快速定位到指定需求

目录

  1. 文件上传

文件上传

代码展示

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进行文件的读取和写入。

举报

相关推荐

0 条评论