Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Hochladen von Bildern auf den Server in Spring MVC und Speichern von Referenzen in der MySQL-Datenbank

Das Speichern auf der Festplatte und das Speichern in MySQL hat seine Einschränkungen. hier ist eine gute Diskussion darüber.

Um es im Dateisystem zu speichern, können Sie Commons File Upload verwenden . Hier ist ein Beispiel

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>

Verantwortlicher

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

Und definieren Sie dies in Ihrem Anwendungskontext

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

Ich hoffe, das hilft.