Angular и Spring boot: я хочу загрузить несколько файлов - PullRequest
0 голосов
/ 24 апреля 2020

Мне удалось загрузить один файл и сохранить его в базе данных с помощью весенней загрузки и angular, но теперь я хочу загрузить более одного файла и сохранить их в базе данных. я хочу, чтобы моя служба могла загружать более одного файла и сохранять их все в базе данных.

вот служба моей весенней загрузки, которая позволяет загружать только один файл:

@Service
public class FileUtils {
    @Autowired
    DBFileRepository fileRepo;

    public boolean uploadImage(MultipartFile file,String tag,String dep) {
        DBFile image = createFile(file);
        if (image == null)
            return false;
        image.setFileTag(tag);
        image.setDepartement(dep);
        image.setActive(true);
        fileRepo.save(image);
        return true;
    }



    public static DBFile createFile(MultipartFile file) {
        DBFile myfile = new DBFile();
        String fileName = StringUtils.cleanPath(file.getOriginalFilename());
        String[] nameAndType = fileName.split("\\.");

        if (nameAndType.length != 2)
            return null;

        try {
            myfile.setFileContent(compressBytes(file.getBytes()));
        } catch (IOException e) {
            e.printStackTrace();
        }
        myfile.setAddedAt(new Date(LocalDateTime.now().getMinute()));// please change all set<date> like this
        myfile.setName(nameAndType[0]);
        myfile.setFileType(nameAndType[1]);

        return myfile;
    }

    public static String getFileName(DBFile file) {
        return file.getName() + "." + file.getFileType();
    }

контроллер:

public boolean uploadImage(MultipartFile file,String tag,String dep) {
        DBFile image = createFile(file);
        if (image == null)
            return false;
        image.setFileTag(tag);
        image.setDepartement(dep);
        image.setActive(true);
        fileRepo.save(image);
        return true;
    }

мой метод загрузки на angular:

 upload() {
    this.currentFile = this.selectedFiles.item(0);
    this.uploadService
      .OnUpload(this.currentFile, this.tag, this.dep)
      .subscribe((response) => {
        if (response.body == true) {
          this.showNotification("bottom", "center");
        } else if (response.body == false) {
          alert(" Changer Votre TAG svp");
        }
      });

    this.selectedFiles = undefined;
  }

моя служба загрузки угловая:

 OnUpload(selectedFile: File, tag: string, dep: string): Observable<any> {
    const uploadImageData = new FormData();
    uploadImageData.append("file", selectedFile, selectedFile.name);
    uploadImageData.append("tag", tag);
    uploadImageData.append("dep", dep);

    //Make a call to the Spring Boot Application to save the image
    return this.http.post("http://localhost:8080/gp/do", uploadImageData, {
      observe: "response",
    });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...