如何从Multipart文件中读取下载的文件(xml,txt),并将该数据逐行保存到数据库中

问题描述 投票:0回答:1

我只是在学习Java(spring boot),但我需要做一个像这样的小项目。我需要将一个文件(xml,txt)上传到服务器,逐行读取并将其放入数据库(在表中有一个字段 - 正文(类型字符串),用于将下载文件的内容放在那里。

我实现了文件上传到服务器(行读也行),但我不能把这些数据放在数据库中。下载的文件具有变量“完整数据”,其中包含下载文件的数据。如何将它传递给变量“body”,以便它存储在数据库中?或者如何区别对待?

我找到了如何在数据库中放入文件本身的示例,但我需要放置文件的内容(内部文本)。

/*File download*/

@RequestMapping(value = "/upload", method = RequestMethod.POST)
    public @ResponseBody String handleFileUpload(@RequestParam("name")String name,
                                                 @RequestParam("file")MultipartFile file){
        if (!file.isEmpty()) {
            try {
                byte[] bytes = file.getBytes();

                String completeData = new String(bytes);

                BufferedOutputStream stream =
                        new BufferedOutputStream(new FileOutputStream(new File(name + "-uploaded")));
                stream.write(bytes);
                stream.close();
                return completeData;
//              return "Вы удачно загрузили " + name + " B " + name + "-uploaded !";
            } catch (Exception e) {
                return "Вам не удалось загрузить " + name + " => " + e.getMessage();
            }
        }else{
            return "Вам не удалось загрузить " + name + " потому что файл пустой.";
        }
    }

/*Domain*/
public class Docs {
    private String body;

    public Docs(){
        super();
    }
        public Docs(String body){
        super();
        this.body=body;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }
}
java postgresql spring-boot jdbc
1个回答
0
投票

我将变量“complete Data”传递给dao.addFile

dao.add(completeData);

Dao.class:

public void add_b_utmdocs(string body){
        template.update ("insert into docs (body) values (?)", body);
    }
© www.soinside.com 2019 - 2024. All rights reserved.