如何使用Spring MVC3在数据库中保留图像
控制器:
public String postAdd(@ModelAttribute("employeeAttribute") @Valid Employee employee, BindingResult result,@RequestParam("file") MultipartFile file) throws Exception{
byte[] bFile=null;
System.out.println("File Name......"+file.getName());
if (!file.isEmpty()) {
bFile = new byte[(int) file.getSize()];
FileInputStream fileInputStream = new FileInputStream(file.getOriginalFilename());
fileInputStream.read(bFile);
fileInputStream.close();
}
employee.setImage(bFile);
employeeServiceImpl.add(employee);
}
Jsp Page:
<c:url var="saveEmp" value="/manam/mobee/employee/add"/>
<form:form modelAttribute="employeeAttribute" method="POST" action="${saveEmp}" enctype="multipart/form-data" >
<form:label path="image">Image</form:label>
<input type="file" name="file" id="file"></input>
这里我发送C:\ Users \ Public \ Pictures \ Sample Pictures \ Desert Landscape.jpg文件但是 FileInputStream只需要Landscape.jpg。 请建议如何为FileInputStream设置完整的文件路径。
这里我收到java.io.FileNotFoundException:Forest.jpg(系统找不到指定的文件)Exception。
答案 0 :(得分:0)
原始文件名是最终用户计算机上文件的名称。您的Spring MVC应用程序在您的服务器计算机上运行。您不能使用原始文件名,希望在最终用户计算机上找到绝对文件名,甚至更少尝试使用此名称读取文件。
要获取上传文件的内容,请使用MultipartFile.getBytes()
或MultipartFile.getInputStream()
。
答案 1 :(得分:0)
您需要从MultipartFile获取字节:
bFile = file.getBytes();
employee.setImage(bFile);