java文件上传工具包

java 文件上传工具包

  1. 主要有两个方法:单文件上传和多文件上传
@Slf4j
public class UploadFileUtil {
    //上传单张图片
    public String uploadPicture(MultipartFile photo) throws IOException {
        String path = ResourceUtils.getURL("classpath:").getPath() + "static/";
        String fileName = snowflakeUtil.get().toString() + photo.getOriginalFilename();
        File file = new File(path, fileName);
        if (!file.getParentFile().exists()) {
            file.getParentFile().mkdir();
        }
        photo.transferTo(file);
        log.warn("文件上传成功,文件名称为:--->" + fileName);
        String resultUrl = fileName;
        log.warn("文件上传的完整路径为:--->" + resultUrl);
        return resultUrl;
    }

    //上传多张图片
    public String uploadPictures(MultipartFile[] photos) throws FileNotFoundException {
        //获取文件上传的路径
        String path = ResourceUtils.getURL("classpath:").getPath() + "static/";
        String fileName = null;
        //定义一个数据,来存放他们存放的图片的路径
        ArrayList<String> list = new ArrayList<>();

        for (MultipartFile photo : photos) {
            try {
                fileName = snowflakeUtil.get().toString() + photo.getOriginalFilename();
                File file = new File(path, fileName);
                if (!file.getParentFile().exists()) {
                    file.getParentFile().mkdir();
                }
                //完成上传
                photo.transferTo(file);
                //实际的图片存放路径
                String resultUrl = fileName;
                list.add(resultUrl);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        log.info("图片存放路径为:--->" + list.toString());
        return list.toString();
    }
}

posted @   LilyFlower  阅读(260)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示