簡體   English   中英

如何從Multipart文件中讀取下載的文件(xml,txt),並將該數據逐行保存到數據庫中

[英]How to read the downloaded file (xml, txt) from a Multipart file and save this data line by line to the database

我只是在學習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;
    }
}

我將變量“complete Data”傳遞給dao.addFile

dao.add(completeData);

Dao.class:

public void add_b_utmdocs(string body){
        template.update ("insert into docs (body) values (?)", body);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM