Мне удалось загрузить один файл и сохранить его в базе данных с помощью весенней загрузки и 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",
});
}