Я новичок в Spring-Boot, я пытаюсь загрузить файл в базу данных Mongodb, сохранить его objectId и связать его с моим документом, чтобы загрузить его позже. Вот мой класс Person:Не удалось загрузить файл с помощью MongoDb GridFs
@Document
public class Person {
@Id
private String id;
private String firstName;
private String lastName;
private String age;
private String filename;
private ObjectId file;
....}
Это мой метод контроллера:
@RequestMapping(value="/addperson",method=RequestMethod.POST)
public String ajout(Model model,@Valid PersonForm pf){
Person p=new Person(pf.getFirstname(),pf.getLastName(),pf.getAge());
InputStream inputStream=null;
try {
inputStream = new FileInputStream("E:/usb/");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
p.setFilename(pf.getFilename());
repository.linkFileToMyDoc(p,inputStream,p.getFilename());
repository.save(p);
model.addAttribute("PersonForm",pf);
return "personview";
}
Интересно, если это лучший способ сделать это. Ошибка, которую я получаю, заключается в том, что доступ к «E:/usb /» отрицается. Может кто-нибудь помочь пожалуйста
Что вы имеете в E диске? Почему бы просто не использовать домашнюю папку вашего зарегистрированного пользователя. Во-вторых, слишком много логики обслуживания, которые у вас есть в контроллере, включите его в сервис. В-третьих, почему бы просто не использовать MultiPart для отправки файлов. Таким образом, вы можете сохранить другую информацию, такую как размер файла, имя, метаданные и т. Д. –
Я хочу сохранить загруженные файлы там в E:/usb/..can исправить меня, если я ошибаюсь, и предоставить мне больше информация о MultiPart.Thanks for ur comment, после добавления уровня сервиса я сделаю изменения – METTAIBI
, пожалуйста, напишите простой обработчик java-файла и проверьте, действительно ли файл доступен или нет? –