sprintboot文件上传XML文件并解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: sprintboot文件上传XML文件并解析

环境:

系统环境:win10


开发工具:IntelliJ IDEA 2021.3.2


测试工具:Postman


注解:

@RestController:将@ResponseBody与@Controller合并成了一个注解来用。


@CrossOrigin:支持跨域。


@SpringBootApplication:设置启动项


端口号设置:server.port=8080


pom.xml:

这里用到了解析xml


<dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>jaxen</groupId>
            <artifactId>jaxen</artifactId>
            <version>1.1.1</version>
        </dependency>

文件操作,所以需要将上传的【MultipartFile】类型的对象转换成【File】,这里单独添加了一个方法。


这里留了注释,可以直接使用,没什么好解释的。


/**
 * 将MultipartFile对象转换成File文件
 * @param multipartFile
 * @return
 */
public static File MultipartFileToFile(MultipartFile multipartFile) {
    File file = null;
    //判断是否为null
    if (multipartFile.equals("") || multipartFile.getSize() <= 0) {
        return file;
    }
    //MultipartFile转换为File
    InputStream ins = null;
    OutputStream os = null;
    try {
        ins = multipartFile.getInputStream();
        file = new File(multipartFile.getOriginalFilename());
        os = new FileOutputStream(file);
        int bytesRead = 0;
        byte[] buffer = new byte[8192];
        while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
            os.write(buffer, 0, bytesRead);
        }
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (os != null) {
            try {
                os.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        if (ins != null) {
            try {
                ins.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    return file;
}


测试编码:

@PostMapping(value = "/api/Index")
public Object Index(MultipartFile files) {
    if (files.getSize() == 0) {
        return new ERROR("格式化失败", null);
    }
    Document document = null;
    SAXReader saxReader = new SAXReader();
    try {
        document = saxReader.read(MultipartFileToFile(files));
        Element root = document.getRootElement();
        System.out.println(root);
        return new SUCCESS("格式化成功", root);
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return new ERROR("数据结构异常", null);


返回对象

class BackResult {
    public BackResult(String message, Object result) {
        this.state = true;
        this.message = message;
        this.result = result;
    }
    public boolean isState() {
        return state;
    }
    public void setState(boolean state) {
        this.state = state;
    }
    public String getMessage() {
        return message;
    }
    public void setMessage(String message) {
        this.message = message;
    }
    public Object getResult() {
        return result;
    }
    public void setResult(Object result) {
        this.result = result;
    }
    public boolean state;
    public String message;
    public Object result;
}
class SUCCESS extends BackResult {
    public SUCCESS(String message, Object result) {
        super(message, result);
        this.state = true;
    }
}
class ERROR extends BackResult {
    public ERROR(String message, Object result) {
        super(message, result);
        this.state = false;
    }
}

上传文件测试:

访问方式【POST】,访问路径【http://127.0.0.1:8080/api/Index】,这里面我给操作步骤了,挨个点就行,如果的图片就直接读取,其它文件类型就解析即可。


image.png

相关文章
|
29天前
|
自然语言处理 数据处理 Python
python操作和解析ppt文件 | python小知识
本文将带你从零开始,了解PPT解析的工具、工作原理以及常用的基本操作,并提供具体的代码示例和必要的说明【10月更文挑战第4天】
255 60
|
1天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
23 8
|
2天前
|
存储
文件太大不能拷贝到U盘怎么办?实用解决方案全解析
当我们试图将一个大文件拷贝到U盘时,却突然跳出提示“对于目标文件系统目标文件过大”。这种情况让人感到迷茫,尤其是在急需备份或传输数据的时候。那么,文件太大为什么会无法拷贝到U盘?又该如何解决?本文将详细分析这背后的原因,并提供几个实用的方法,帮助你顺利将文件传输到U盘。
|
21天前
|
数据安全/隐私保护 流计算 开发者
python知识点100篇系列(18)-解析m3u8文件的下载视频
【10月更文挑战第6天】m3u8是苹果公司推出的一种视频播放标准,采用UTF-8编码,主要用于记录视频的网络地址。HLS(Http Live Streaming)是苹果公司提出的一种基于HTTP的流媒体传输协议,通过m3u8索引文件按序访问ts文件,实现音视频播放。本文介绍了如何通过浏览器找到m3u8文件,解析m3u8文件获取ts文件地址,下载ts文件并解密(如有必要),最后使用ffmpeg合并ts文件为mp4文件。
|
26天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
28天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
30天前
|
XML Web App开发 JavaScript
XML DOM 解析器
XML DOM 解析器
|
28天前
|
XML Java 数据格式
手动开发-简单的Spring基于XML配置的程序--源码解析
手动开发-简单的Spring基于XML配置的程序--源码解析
75 0
|
28天前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
63 0
|
28天前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
50 0

推荐镜像

更多
下一篇
无影云桌面