iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Spring MVC图片的上传和下载功能怎么实现
  • 317
分享到

Spring MVC图片的上传和下载功能怎么实现

2023-07-05 14:07:07 317人浏览 安东尼
摘要

这篇文章主要介绍了spring mvc图片的上传和下载功能怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring MVC图片的上传和下载功能怎么实现文章都会有所收获,下面我们一起

这篇文章主要介绍了spring mvc图片的上传和下载功能怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring MVC图片的上传和下载功能怎么实现文章都会有所收获,下面我们一起来看看吧。

序言

SSM 框架是一种基于Java的web开发框架,其中Spring作为控制层、springMVC作为视图层、mybatis作为持久层,这个框架非常适合WEB应用程序的开发。在这篇文章中,我们将使用 SSM 框架来实现图片的上传和下载功能。

首先,我们需要准备好一个基本的SSM框架环境,也就是需要一个Tomcat服务器、Spring、SpringMVC和MyBatis等开发工具

接着创建一个名为Image的Java类来存储图片的信息。该类包含以下字段:id、name、path、size、createTime、type、等。

思路一:浏览器图片的上传下载显示通过本地实现

1、图片上传功能

在控制层中,我们创建一个名为UploadController的类来处理上传请求。在该类中,我们需要添加一个方法,该方法用于处理上传请求并返回上传结果。在该方法中,我们需要使用SpringMVC提供的 MultipartResolver 类来解析上传的文件,获取文件信息,并将文件保存到服务器上。以下是UploadController类中的代码:

@Controller@RequestMapping("/upload")public class UploadController {    @RequestMapping(value = "/image", method = RequestMethod.POST)    @ResponseBody    public String uploadImage(@RequestParam("file") MultipartFile file) {        String fileName = file.getOriginalFilename();        String path = "D:/uploads/" + fileName;        try {            File dest = new File(path);            if (!dest.getParentFile().exists()) {                dest.getParentFile().mkdirs();            }            file.transferTo(dest);            return "success";        } catch (Exception e) {            e.printStackTrace();            return "error";        }    }}

2、图片下载功能

在控制层中,我们创建一个名为DownloadController的类来处理下载请求。在该类中,我们需要添加一个方法,该方法用于处理下载请求并返回下载结果。在该方法中,我们需要使用SpringMVC提供的 ResponseEntity 类来返回文件流并设置相关的头信息。以下是DownloadController类中的代码:

@Controller@RequestMapping("/download")public class DownloadController {    @RequestMapping(value = "/image/{id}", method = RequestMethod.GET)    public ResponseEntity<byte[]> downloadImage(@PathVariable("id") int id) {        Image image = imageService.getImageById(id);        String fileName = image.getName();        String path = "D:/uploads/" + fileName;        try {            HttpHeaders headers = new HttpHeaders();            headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);            headers.setContentDispositionFORMData("attachment", fileName);            File file = new File(path);            return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, httpstatus.CREATED);        } catch (Exception e) {            e.printStackTrace();            return null;        }    }}

以上代码中,我们使用了 imageService.getImageById(id) 方法来获取要下载的图片的信息,这个方法可以自己实现或借助MyBatis框架读取数据库获取数据。

最后,在SpringMVC的配置文件spring-servlet.xml中,添加以下配置信息,以支持文件上传和下载功能:

<!-- 文件上传配置 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">    <property name="maxUploadSize" value="10485760" /></bean><!-- 文件下载配置 --><mvc:resources mapping="/download/**" location="file:/D:/uploads/" />

这样,我们就完成了图片上传和下载的功能实现。通过SSM框架的整合,我们可以很方便地实现文件上传和下载的功能。

思路二:浏览器图片的上传下载显示通过数据库实现

SSM 将图片添加到数据库和从数据库读取到前端页面实质上是对数据库中的二进制数据进行操作,以下是常用的实现方式:

1、将图片添加到数据库

(1)在数据库中添加一个表,用于存储图片数据,表结构如下:

CREATE TABLE tb_image(    `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',    `name` varchar(255) NOT NULL COMMENT '文件名',    `image` longblob NOT NULL COMMENT '图片数据',    PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='图片表';

其中,id为主键自增长,name用于存储文件名,image用于存储图片数据。

(2)在 Java 代码中先读取图片数据,然后将其插入到数据库中,示例代码如下:

public void addImage(String name, String imagePath) {    try {        FileInputStream fis = new FileInputStream(imagePath);        PreparedStatement pstmt = conn.prepareStatement("INSERT INTO tb_image(name,image) VALUES(?,?)");        pstmt.setString(1, name);  // 设置文件名        pstmt.setBinaryStream(2, fis, fis.available());  // 设置图片数据        pstmt.executeUpdate();        pstmt.close();    } catch (Exception e) {        e.printStackTrace();    }}

其中,name为文件名,imagePath为图片路径,fis为读取图片数据的输入流,conn为数据库连接对象。

从数据库读取到前端页面

(1)在 Java 代码中从数据库中读取图片数据,示例代码如下:

public void getImage(int id, HttpServletResponse response) {    try {        PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM tb_image WHERE id=?");        pstmt.setInt(1, id);        ResultSet rs = pstmt.executeQuery();        if (rs.next()) {            String name = rs.getString("name");            Blob imageBlob = rs.getBlob("image");            InputStream is = imageBlob.getBinaryStream();            ServletOutputStream out = response.getOutputStream();            response.setContentType("image/jpeg");            response.setHeader("Content-Disposition", "attachment;filename=" + name);            byte[] b = new byte[1024];            int len;            while ((len = is.read(b)) > 0) {                out.write(b, 0, len);            }            is.close();            out.flush();            out.close();        }        rs.close();        pstmt.close();    } catch (Exception e) {        e.printStackTrace();    }}

其中,id 为图片在数据库中的对应主键,response 为响应对象,conn 为数据库连接对象。通过操作 ResultSet 对象可以得到图片数据的输入流。

(2)在前端页面中调用此 Java 方法,将图片数据显示在页面上,示例代码如下:

<img src="/getImage?id=1" />

其中,getImage 方法的 id 参数表示图片在数据库中的主键值。在前端页面中使用 img 标签,指定 src 属性为 getImage 方法的 url 地址即可。

关于“Spring MVC图片的上传和下载功能怎么实现”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Spring MVC图片的上传和下载功能怎么实现”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: Spring MVC图片的上传和下载功能怎么实现

本文链接: https://www.lsjlt.com/news/352122.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spring MVC图片的上传和下载功能怎么实现
    这篇文章主要介绍了Spring MVC图片的上传和下载功能怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring MVC图片的上传和下载功能怎么实现文章都会有所收获,下面我们一起...
    99+
    2023-07-05
  • Spring MVC 图片的上传和下载
    ✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:...
    99+
    2023-08-20
    spring java mvc
  • SpringMVC图片的上传和下载功能
    目录序言思路一:浏览器图片的上传下载显示通过本地实现1、图片上传功能2、图片下载功能思路二:浏览器图片的上传下载显示通过数据库实现1、将图片添加到数据库 序言  &emsp...
    99+
    2023-03-20
    Spring MVC 图片上传下载 Spring MVC 图片下载
  • Spring MVC实现文件上传和下载
    本文实例为大家分享了Spring MVC实现文件上传和下载的具体代码,供大家参考,具体内容如下 文件上传 1、导入主要依赖 <!--文件上传--> <depe...
    99+
    2022-11-12
  • Spring MVC 实现文件的上传和下载
    文章目录 前言1. 文件上传1.1 文件上传介绍1.2 文件上传实现1.2.1 添加依赖1.2.2 配置上传解析器1.2.3 通过表单上传1.2.4 创建控制器类1.2.5 上传演示 ...
    99+
    2023-09-26
    spring mvc java java-ee
  • 使用Spring MVC怎么实现文件上传和下载
    这期内容当中小编将会给大家带来有关使用Spring MVC怎么实现文件上传和下载,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。文件上传导入主要依赖<!--文件上传--><dependen...
    99+
    2023-06-14
  • Android编程实现图片的上传和下载功能示例
    本文实例讲述了Android编程实现图片的上传和下载功能。分享给大家供大家参考,具体如下: 在实现一个Android的WEB服务客户端,比如微博,论坛客户端时,经常会使用到图片...
    99+
    2022-06-06
    示例 图片 Android
  • 如何使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
    这篇文章主要介绍如何使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一步:下载localRes...
    99+
    2022-10-19
  • PHP怎么实现上传图片功能
    本篇内容主要讲解“PHP怎么实现上传图片功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP怎么实现上传图片功能”吧!首先我们在form表单加上上传附件#file,上传按钮#imgbut,记...
    99+
    2023-06-04
  • Spring Boot 实现图片上传并回显功能
    一、常规形式 1 项目结构 2 配置文件及环境设置 (1)配置文件 # 应用服务 WEB 访问端口 server.port=8080 # spring 静态资源扫描路径 spr...
    99+
    2022-11-12
  • 利用Spring Boot怎么样实现一个图片上传功能
    利用Spring Boot怎么样实现一个图片上传功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。具体内容如下package com.clou.inteface.domain....
    99+
    2023-05-31
    springboot spring boo
  • 利用Spring MVC怎么实现一个文件上传功能
    本篇文章给大家分享的是有关利用Spring MVC怎么实现一个文件上传功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。使用Spring MVC 上传文件必须配置文件解析器,如...
    99+
    2023-05-31
    springmvc 一个文件
  • Android开发实现图片的上传下载
    Android图片上传的应用场景,供大家参考,具体内容如下 在Android开发中,很多时候我们需要进行图片,文件的上传下载,最直接的一个应用场景就是用户头像的保存与切换,以及像即时...
    99+
    2022-11-13
  • thinkphp5怎么加layui实现图片上传功能
    本篇内容介绍了“thinkphp5怎么加layui实现图片上传功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!网站中很多表单都会用到上传图...
    99+
    2023-07-05
  • Java怎么实现FTP的上传与下载功能
    这篇文章主要讲解了“Java怎么实现FTP的上传与下载功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么实现FTP的上传与下载功能”吧!JAVA操作FTP服务器,只需要创建一个F...
    99+
    2023-06-29
  • Vue实现文件上传和下载功能
    本文实例为大家分享了Vue实现文件上传和下载功能的具体代码,供大家参考,具体内容如下 1、a标签download属性 在H5中,为a标签新增了一个download属性,来直接文件的...
    99+
    2022-11-12
  • html5中怎么实现图片上传预览功能
    今天就跟大家聊聊有关html5中怎么实现图片上传预览功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。<!DOCTYPE html&...
    99+
    2022-10-19
  • vue中实现图片和文件上传功能
    本篇文章为大家展示了vue中实现图片和文件上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。html页面<input type="fi...
    99+
    2022-10-19
  • vue使用element实现上传图片和修改图片功能
    目录前言一、应用场景1.上传图片并进行放大预览2.图片上传代码二、修改已经上传的图片,并展示到图片列表中1.效果展示(先展示原来的图片,再上传新图片,也可删除原来的图片)2.编辑代码...
    99+
    2022-11-13
  • SpringBoot怎么实现文件上传与下载功能
    这篇“SpringBoot怎么实现文件上传与下载功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot怎么实...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作