【发布时间】:2015-12-08 10:56:27
【问题描述】:
我是 Spring-Boot 的新手,我正在尝试将文件上传到 Mongodb 数据库,保存其 objectId 并将其链接到我的文档,以便稍后下载。 这是我的班级人:
@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盘里有什么?为什么不简单地使用登录用户的主文件夹。其次,你在Controller中有太多的服务逻辑,把它放在服务中。第三,为什么不简单地使用 MultiPart 来发送文件。这样,您可以保存文件大小、名称、元数据等其他信息。
-
我想将上传的文件存储在 E:/usb/ 中。如果我错了,你能纠正我吗,并提供有关 MultiPart 的更多信息。谢谢你的评论,一旦我添加我将修改服务层
-
请编写一个简单的 java 文件处理程序并检查该文件是否真的可以访问?
-
我解决了这个问题。在下面检查我的答案。我会很高兴收到您的反馈
标签: java mongodb spring-mvc spring-boot gridfs