uploading images to server in spring MVC and storing reference in mysql database [closed]

守給你的承諾、 提交于 2019-12-03 07:19:17

问题


I'm coding a Spring MVC 3.0 application with Tomcat as the web server.

Our requirement is to let the user upload an image. I'm thinking of storing this image on the disk file system and store the reference path in MySQL instead of storing all the file info in MySQL database as BLOB (I was told storing in MySQL is not best practice).

Can any one recommend how to do this in Spring MVC?

Cheers


回答1:


Storing in disk and storing in MySQL has its on caveats. Here is good discussion about it.

To store it in file system you can use Commons File Upload. Here is a sample

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>

Controller

@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.
 }  
}

And define this in your application context

 <bean id="multipartResolver"
    class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

I hope this helps.



来源:https://stackoverflow.com/questions/14085511/uploading-images-to-server-in-spring-mvc-and-storing-reference-in-mysql-database

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!