1
0
forked from PGL/Clyde

Modifying backend so it send the full entry of a file upload

This commit is contained in:
Debucquoy Anthony 2024-03-13 22:28:59 +01:00
parent 68e55e8355
commit a0285e700d
Signed by untrusted user: tonitch
GPG Key ID: A78D6421F083D42E
7 changed files with 23 additions and 10 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

View File

@ -1,13 +1,12 @@
package ovh.herisson.Clyde.EndPoints; package ovh.herisson.Clyde.EndPoints;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import ovh.herisson.Clyde.Services.StorageService; import ovh.herisson.Clyde.Services.StorageService;
import org.springframework.core.io.Resource;
import ovh.herisson.Clyde.Tables.FileType; import ovh.herisson.Clyde.Tables.FileType;
import ovh.herisson.Clyde.Tables.StorageFile;
@RestController @RestController
@CrossOrigin(originPatterns = "*", allowCredentials = "true") @CrossOrigin(originPatterns = "*", allowCredentials = "true")
@ -21,12 +20,17 @@ public class StorageController {
@PostMapping("/upload/{fileType}") @PostMapping("/upload/{fileType}")
public ResponseEntity<String> handleFileUpload(@RequestParam("file") MultipartFile file, @PathVariable FileType fileType) { public ResponseEntity<StorageFile> handleFileUpload(@RequestParam("file") MultipartFile file, @PathVariable FileType fileType) {
String path = storageServ.store(file,fileType); StorageFile fileEntry = null;
try {
fileEntry = storageServ.store(file,fileType);
if (path == null) return new ResponseEntity<>("issue with the file storage", HttpStatus.BAD_REQUEST); } catch(Exception e){
e.printStackTrace();
}
return new ResponseEntity<>(path, HttpStatus.OK);
return new ResponseEntity<>(fileEntry, HttpStatus.OK);
} }
} }

View File

@ -27,7 +27,7 @@ public class StorageService {
} }
public String store(MultipartFile file, FileType fileType) { public StorageFile store(MultipartFile file, FileType fileType) {
if (file.getOriginalFilename().isEmpty()){return null;} if (file.getOriginalFilename().isEmpty()){return null;}
@ -49,9 +49,7 @@ public class StorageService {
String url = this.rootLocation.resolve(Paths.get(Objects.requireNonNull(stringUuid))) String url = this.rootLocation.resolve(Paths.get(Objects.requireNonNull(stringUuid)))
.normalize().toString(); .normalize().toString();
fileRepo.save(new StorageFile(file.getName(),url, fileType)); return fileRepo.save(new StorageFile(file.getName(),url, fileType));
return url;
} }
public void delete(StorageFile file) throws SecurityException { public void delete(StorageFile file) throws SecurityException {

View File

@ -0,0 +1,11 @@
import { restPostFile } from '@/rest/restConsumer.js'
/**
* Upload a file to the server and return the url of this image
*/
export async function uploadProfilePicture(file){
const formData = new FormData();
formData.append("file", file[0]);
return restPostFile("/upload/ProfilePicture", formData)
}