Rumah  >  Soal Jawab  >  teks badan

Elakkan ralat semasa mengedit data tanpa memuat naik imej pengguna

Jadi apabila saya mengemas kini data untuk pengguna, saya mendapat ralat di mana ia ingin memuat naik imej itu semula walaupun saya telah memuat naik imej untuk pengguna dalam pangkalan data. Bolehkah sesiapa memberitahu saya bagaimana untuk menyelamatkan pengguna tanpa memuat naik imej, tetapi menyimpan imej yang dimuat naik dalam pangkalan data saya?

Ralatnya ialah java.IOException: Tidak dapat menyimpan fail imej:

Disebabkan oleh: java.nio.file.DirectoryNotEmptyException: profile-image/4

Ini pengawal saya

@PostMapping("/profile/save")
public String saveProfile(Profile profile, Model model, @RequestParam("image") MultipartFile multipartFile,@RequestParam(value="userId", required=false) Long userId) throws IOException {
profile.setUser(userRepo.findById(userId).get());
String fileName = StringUtils.cleanPath(multipartFile.getOriginalFilename()) ;
String uploadDir - "profile-image/"+ profile.getId();
FileUploadUtil.saveFile(uploadDir, fileName, multipartFile);
profile.setProfileImg(fileName);
profileService.saveProfile(profile);
return "redirect:/user/profile";

P粉707235568P粉707235568185 hari yang lalu280

membalas semua(1)saya akan balas

  • P粉156532706

    P粉1565327062024-04-01 09:38:55

    Terdapat pepijat dalam FileUploadUtil kelas anda. Direktori ini hanya boleh dibuat jika direktori tidak wujud wujud:

    public static void saveFile(String uploadir, String fileName, MultipartFile multipartFile) throws IOException {
        Path uploadPath = Paths.get(uploadDir);
        if (!Files.exists(uploadPath)) {
            Files.createDirectories(uploadPath);
        }
        try (InputStream inputStream = multipartFile.getInputStream()) {
            Path filePath = uploadPath. resolve(fileName);
            System.out.printIn(filePath.toFile()-getAbsolutePath()+"File Path*******");
            Files.copy(inputStream, filePath, StandardCopyOption.REPLACE_EXISTING);
        } catch (IOException ioe) {
            throw new IOException("Could not save image file: " + fileName, ioe);
        }
    }

    balas
    0
  • Batalbalas