springboot 大文件上传 java.lang.OutOfMemoryError

2023-05-16

  • 错误代码
	@PostMapping("/upload")
	public ResultMsg algorithmFile(@RequestParam("file") MultipartFile file) {
		String fileName = file.getOriginalFilename();
		String[] fileNamePart = fileName.split("\\.");
		String fileNameWithPath = filePath + UUID.randomUUID().toString(true) + "."
				+ fileNamePart[fileNamePart.length - 1];
		try {
			Files.write(Paths.get(fileNameWithPath), file.getBytes());
		} catch (IOException e) {
			e.printStackTrace();
		}

		return new ResultMsg(ResponseCodeEnum.SUCCESS.getIndex(), fileNameWithPath, "上传成功");
	}
  • 正确代码
	@PostMapping("/upload")
	public ResultMsg algorithmFile(@RequestParam("file") MultipartFile file) {
		String fileName = file.getOriginalFilename();
		String[] fileNamePart = fileName.split("\\.");
		String fileNameWithPath = filePath + UUID.randomUUID().toString(true) + "." + fileNamePart[fileNamePart.length -1];
		try {
			InputStream input =  file.getInputStream();
			FileOutputStream out = new FileOutputStream(new File(fileNameWithPath));
			IOUtils.copy(input, out);
			out.close();
		} catch (IOException e1) {
			e1.printStackTrace();
		}
		return new ResultMsg(ResponseCodeEnum.SUCCESS.getIndex(), fileNameWithPath, "上传成功");
	}

总结

错误代码中使用了,file.getBytes(),应该是该操作导致了内存溢出。具体区别和原因暂时没分析

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

springboot 大文件上传 java.lang.OutOfMemoryError 的相关文章

随机推荐

  • Xcode及模拟器SDK下载

    现在不会有人想在 Xcode 里安装旧版的模拟器了 xff0c 本篇不再维护 如果你嫌在 App Store 下载 Xcode 太慢 xff0c 你也可以选择从网络上下载 xff1a Xcode下载 xff08 Beta版打的包是不能提交到
  • Mac下最好用的文本编辑器

    友情提醒 xff1a 图多杀猫 以前在Windows下一直用gVim xff0c 可以用键盘控制一切 xff0c 操作起来是又快又爽 xff0c 还支持一大堆插件 xff0c 想怎么玩就怎么玩 后来转Mac后 xff0c 也沿袭着之前的习惯
  • iOS8 Core Image In Swift:更复杂的滤镜

    iOS8 Core Image In Swift xff1a 自动改善图像以及内置滤镜的使用 iOS8 Core Image In Swift xff1a 更复杂的滤镜 iOS8 Core Image In Swift xff1a 人脸检测
  • 使用CocoaPods过程中的几个问题

    当把CocoaPods生成的workspace移动到上层目录时 xff0c 需要改下Pods xcconfig和工程里的一些设置 xff0c 就通常没什么难度 当遇到这个问题时 xff1a Could not automatically s
  • error execution phase kubelet-start: error uploading crisocket: timed out waiting for the condition

    在部署k8s容器过程中添加node节点提示 查询10250端口使用情况发现已经被使用netstat anpt grep 10250 说明之前有安装记录 xff0c 需要进行重新初始化操作 swapoff a 关闭swap空间 kubeadm
  • 我的2014-转行转行再转行,坚守互联网

    2014年的1月1号 xff0c 直到用餐的客人全部走完 xff0c 关完店回到家已经是凌晨了 xff0c 想想以前在北京的时候 xff0c 女友让我回家带点大葱 xff0c 我买成了韭菜 xff0c 后来居然开了一家餐饮店 xff0c 还
  • 仿网易云音乐的播放进度条

    仿网易云音乐的播放进度条 xff0c 有三种状态 xff1a 播放 暂停和拖动 xff0c 只是实现了动画和主要的交互逻辑 xff0c 其他细节 xff08 如暂停音乐的播放等 xff09 还需要自己完善 xff1a DKPlayerBar
  • 用 Houston 在本地调试远程通知

    Houston 的背景 Houston 在 GitHub 上的地址 xff1a https github com nomad Houston xff0c 作者又是Mattt Thompson xff0c 简直是惨无人道啊 xff0c 又高产
  • 如何设计一个 iOS 控件?(iOS 控件完全解析)

    代码的等级 xff1a 可编译 可运行 可测试 可读 可维护 可复用 前言 一个控件从外在特征来说 xff0c 主要是封装这几点 xff1a 交互方式显示样式数据使用 对外在特征的封装 xff0c 能让我们在多种环境下达到 PM 对产品的要
  • 用JFreeChart 生成报表

    JFreeChart是JAVA平台上的一个开放的图表绘制类库 它完全使用JAVA语言编写 xff0c 是为applications applets servlets 以及JSP等使用所设计 JFreeChart可生成饼图 xff08 pie
  • Mac原生字典支持的词典

    一共十八部词典 xff0c 见下 xff1a 打了一个包 xff0c 有700多M xff0c 在CSDN没有权限上传这么大的文件 xff0c 故上传到115上 放到 Library Dictionaries 目录中即可 下载地址
  • NSAttributedString 详解

    NSAttributedString可以让我们使一个字符串显示的多样化 xff0c 但是目前到iOS 5为止 xff0c 好像对它支持的不是很好 xff0c 因为显示起来不太方便 xff08 至少没有在OS X上方便 xff09 首先导入C
  • Windows 11(ISO) 官方镜像文件下载

    一 win11 ISO 下载 1 win11 ISO 镜像文件官方下载 https www microsoft com zh cn software download windows11 2 win11 ISO 镜像文件百度网盘下载 链接
  • Linux中对磁盘(硬盘)分区和挂载

    记录 xff1a 346 场景 xff1a 在CentOS 7 9操作系统上 xff0c 使用fdisk对磁盘分区 xff1b 使用mkfs xfs创建文件系统 xff1b 使用mount挂载磁盘到目录 xff1b 使用umount卸载目录
  • 一份超详细的MySQL高性能优化实战总结!

    一份超详细的MySQL高性能优化实战总结 xff01 MySQL 对于很多 Linux 从业者而言 xff0c 是一个非常棘手的问题 xff0c 多数情况都是因为对数据库出现问题的情况和处理思路不清晰 在进行 MySQL 的优化之前必须要了
  • Openssh-8.5p1版本tar包方式升级步骤

    以下是通过tar包方式介绍openssh 8 5p1版本升级步骤 步骤1 获取openssh 8 5p1版本tar包 下载地址 xff1a 链接 xff1a https pan baidu com s 1KMEuvqTAWIukN5 mWY
  • Git下载指定历史版本的代码(详细步骤)

    Git下载指定历史版本的代码 xff08 详细步骤 xff09 一 克隆拉取指定版本代码 第1步 xff1a 在本地某个空文件夹下右键 Git Bash Here 打开Git窗口 克隆项目到本地 在空白的地方点击右键 xff0c 在右键中选
  • DBeaver备份postgresql问题

    DBeaver备份postgresql问题 报错 Native client home 39 PostgreSQL Binaries 39 not found 报错 Native client home PostgreSQL Binarie
  • springboot单元测试junit启用回滚测试数据报错

    报错信息 Failed to retrieve PlatformTransactionManager java lang IllegalStateException Failed to retrieve PlatformTransactio
  • springboot 大文件上传 java.lang.OutOfMemoryError

    错误代码 span class token annotation punctuation 64 PostMapping span span class token punctuation span span class token stri