首页 > 其他分享 >文件操作

文件操作

时间:2024-02-22 09:44:31浏览次数:29  
标签:文件 MultipartFile File file 操作 new multipartFile String

1、前端上传文件 -> 接口接收文件 MultiPartFile -> 转发到其它接口

//a)Multipart 转 File
public static File convert(MultipartFile multipartFile) throws IOException {
	File file = new File(multipartFile.getOriginalFilename());
	FileUtils.copyInputStreamToFile(multipartFile.getInputStream(), file);
	return file;
}
//b)Multipart 转 File
// 或者 MultipartFile 临时存储本地
    private List<File> fileList saveFile(List<MultipartFile> multipartFileList, String dirName) {
	    List<File> fileList = new ArrayList<>();
        for (MultipartFile multipartFile : multipartFileList) {
            String destFile = String.format(Locale.ROOT,
                "%s/%s",
                dirName, multipartFile.getOriginalFilename());
            File file = new File(destFile);
            File dir = file.getParentFile();
            if (!dir.exists()) {
                dir.mkdir();
            }
            try {
                multipartFile.transferTo(file);
				fileList.add(file)
            } catch (Exception ex) {
                log.error("文件转换失败", ex);
                throw new BusinessException("文件转换失败");
            }
        }
		return fileList;
    }
public void embeddingFile(File file, String fileName) {
	JSONObject jsonObject = new JSONObject();
	try {
		HttpResponse response = HttpUtil.createPost("https://xxx")
				.form("file", file, fileName)
				.form("param1", "param1")
				.execute();
		int status = response.getStatus();
		jsonObject = JSONObject.parseObject(response.body(), JSONObject.class);
		if(jsonObject.getInteger("code")!=200){
			throw new Exception("");
		}

	} catch (Exception e) {
		throw new Exception("");
	}

}

  1. 本地模拟前端上传的文件。File->MultipartFile
<dependency>
	<groupId>org.springframework</groupId>
	<artifactId>spring-test</artifactId>
</dependency>
 public static MultipartFile getMockMultipartFile(String fileName, String filePath) throws IOException {
        File file = new File(filePath);
        byte[] fileContent = Files.readAllBytes(file.toPath());
        return new MockMultipartFile(fileName, file.getName(), "application/vnd.ms-word", fileContent);
    }

其它 : 将 InputStream 转换为临时 File

使用后可手动删除 file.delete()

    private static File convertInputStreamToFile(InputStream inputStream) throws IOException {
        File tempFile = File.createTempFile("diagnostics", ".tmp");
        tempFile.deleteOnExit(); // jvm 退出自动删除
        try (FileOutputStream out = new FileOutputStream(tempFile)) {
            int read;
            byte[] bytes = new byte[1024];

            while ((read = inputStream.read(bytes)) != -1) {
                out.write(bytes, 0, read);
            }
        }
        return tempFile;
    }

标签:文件,MultipartFile,File,file,操作,new,multipartFile,String
From: https://www.cnblogs.com/sunupo/p/17912878.html

相关文章

  • 实现多个csv文件导出
    publicR<Boolean>exportCsv(HttpServletResponseresponse,@RequestBodyDrQueryDtoqueryDto)throwsException{IntegercountyId=queryDto.getCountyId();StringyearAnnual=queryDto.getYearAnnual();Stringurl="E:\\......
  • 尝试从Ubuntu的deb包里提取出来二进制文件移到安卓上 最终发现不可行
    https://packages.ubuntu.com/en/focal/arm64/fastboot/downloadhttps://packages.ubuntu.com/focal/arm64/tree/download这个页面不能下载Youcandownloadtherequestedfilefromthe pool/universe/t/tree/ subdirectoryatanyofthesesites:Notethatinsomebro......
  • 文件包含与下载
    一、漏洞检测与危害概念文件包含前面已经演示过,在真实的开发项目中,文件包含可以节省重复代码文件包含:将指定的文件当代码执行文件包含执行恶意代码(图片木马),也可能导致敏感信息的泄露(配置文件)检测检测是否有该漏洞白盒:通过代码审计的方式黑盒:扫描工具、公开的漏洞,手动看参......
  • 【APP逆向15】通过adb获取手机上已安装应用的apk文件
    逆向过程中,当手机上安装对应的apk后,我们需要反编译该apk。但是pc端下载的apk版本又与手机上不一致。这个时候就需要将手机上的apk文件导出到pc进行反编译分析了。1.通过frida获取包名2.根据包名找到apk文件的存放路径,通过命令adbshellpmpath应用包名来获取其apk文件......
  • 根据星历文件实现卫星的动态运行模拟matlab仿真
    1.算法运行效果图预览 2.算法运行软件版本MATLAB2022a  3.算法理论概述      卫星的动态跟踪捕获是航天工程和卫星通信领域中的关键技术之一。它涉及到对卫星轨道的精确预测、接收设备的指向控制以及信号处理等多个方面。       随着航天技术的不断......
  • Oracle误删除数据文件恢复---惜分飞
    联系:手机/微信(+8617813235971)QQ(107644445)标题:Oracle误删除数据文件恢复作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]有客户通过sftp误删除oracle数据文件,咨询我们是否可以恢复,通过远程上去检查,发现运气不错,数据库还没有c......
  • 从源文件到可执行文件
        对于本章,首先我们需要了解源代码和源文件,用某种编程语言编写的程序,就是源代码保存源代码的文件就是源文件,而且用C语言编写的源文件的扩展名通常是".c"。但若想要程序运行还需要将源代码转换成本地代码,因为计算机的"大脑"CPU能直接解析的是本地代码。既然我们知道了,要转......
  • 面操作
    内插面即向内缩小缩小一圈快捷键:i键(inset)选择一个面选择inset工具鼠标放在圆圈处,鼠标按下,往里拖拽微调在菜单下面或微调面板,可以勾选外插操作。即向外扩展一圈。更多操作inset,同时选择外侧(微调面板)选择多个面,同时inset操作各面(各个面独立做内插面的意思)尖分......
  • vscode+.md文件生成pdf简历
     前提:vscode下载安装插件:MarkdownPreviewEnhanced,用来预览md文件的效果 操作:1.编辑md文件,文件的格式基本同html标签的使用一样。2.点击如图位置,预览md文件的效果:3.在md预览界面鼠标右键-点击选择在浏览器打开4.在浏览器页面->鼠标右键->打印,生成pdf即可。 ......
  • 《程序是怎样跑起来的》——第8章 从源文件到可执行文件
    一、代码1、源代码完成后,就可以编译生成可执行文件了。负责实现该功能的是编译器2、代码运行:计算机只能运行本地代码。3、源代码和源文件:用某种编程语言编写的程序就称为源代码,保存源代码的文件称为源文件。(这里的“源代码”用英文表示是“sourcecode”。source有“原始的”......