簡體   English   中英

primeNG文件上傳到字節[]

[英]primeNG fileupload to byte[]

我如何使用primeNg fileupload從文件上傳中獲取字節[],我需要將其保存在模型中以保留在數據庫java后端中:在后端中,我有這個

 Class User{ List<UserDocument> } class UserDocument{ @Column(name = "name", length = 100, nullable = false) private String name; @Column(name = "description", length = 255) private String description; @Column(name = "type", length = 100, nullable = false) private String type; @Lob @Basic(fetch = FetchType.LAZY) @Column(name = "content", nullable = false) private byte[] content; @ManyToOne(optional = false) @JoinColumn(name = "USER_ID") private User user; } 

所以在角度6中我也有用戶和用戶文檔模型,我不需要在用戶之前發布上傳文件,因為此時用戶不存在...

我需要同時使用其usedocument創建用戶。

所以在角度上,我有一個帶有用戶名filds等的表格,以及primeng fileupload,我要做的就是當您在文件上載時,我得到了事件並從event.files創建了一個新的userDocument模型

  onUpload(event) {
    let fileReader = new FileReader();
    for (let file of event.files) {
      const userDocument: UserDocument = new UserDocument();
      userDocument.name = file.name;
      userDocument.description = file.description;
      userDocument.type = file.type;
      userDocument.content = file; /// i need to set here the file byte[]
    }
  }

在有角度的userDocument.content中是any []

我正在嘗試,如何從文件中獲取byte []?

謝謝

要獲取BASE64字符串,您應該執行以下操作:

  onUpload(event) {
    let fileReader = new FileReader();
    for (let file of event.files) {
      fileReader.readAsDataURL(file);
      fileReader.onload = function () {
          // Will print the base64 here.
          console.log(reader.result);
      };
    }
  }

或者,如果您希望將數據作為多部分而不是JSON發送,則可以執行以下操作:

  onUpload(event) {
    var fd = new FormData();
    for (let file of event.files) {
      fd.append('file', file);
    }
    // POST the data to the backend
    this.http.post(url, fd);
  }

暫無
暫無

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

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