我编码一个Spring MVC 3.0
应用程序使用Tomcat作为web服务器。
我们的要求是让用户上传的图像。 我想存储的磁盘文件系统上的这一形象和参考路径在MySQL存储而不是存储在MySQL数据库中的BLOB的所有文件信息(有人告诉我,存储在MySQL中是不是最好的做法)。
任何一个可以推荐如何在Spring MVC中做到这一点?
干杯
我编码一个Spring MVC 3.0
应用程序使用Tomcat作为web服务器。
我们的要求是让用户上传的图像。 我想存储的磁盘文件系统上的这一形象和参考路径在MySQL存储而不是存储在MySQL数据库中的BLOB的所有文件信息(有人告诉我,存储在MySQL中是不是最好的做法)。
任何一个可以推荐如何在Spring MVC中做到这一点?
干杯
在磁盘上存储和存放在MySQL有警告的。 下面是关于它的讨论。
将其存储在文件系统,您可以使用共享文件上传 。 下面是一个示例
的pom.xml
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${release.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${release.version}</version>
</dependency>
JSP
<h2>Spring MVC file upload example</h2>
<form method="POST" action="<c:url value='/upload' />"
enctype="multipart/form-data">
Please select a file to upload : <input type="file" name="file" />
<input type="submit" value="upload" />
</form>
调节器
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public String handleFormUpload(
@RequestParam("file") MultipartFile file) throws IOException{
if (!file.isEmpty()) {
BufferedImage src = ImageIO.read(new ByteArrayInputStream(file.getBytes()));
File destination = new File("File directory with file name") // something like C:/Users/tom/Documents/nameBasedOnSomeId.png
ImageIO.write(src, "png", destination);
//Save the id you have used to create the file name in the DB. You can retrieve the image in future with the ID.
}
}
而在你的应用程序上下文定义此
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
我希望这有帮助。