Rumah > Soal Jawab > teks badan
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粉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); } }