返回顶部
首页 > 资讯 > 后端开发 > Python >SpringMVC图片的上传和下载功能
  • 104
分享到

SpringMVC图片的上传和下载功能

SpringMVC图片上传下载SpringMVC图片下载 2023-03-20 11:03:32 104人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录序言思路一:浏览器图片的上传下载显示通过本地实现1、图片上传功能2、图片下载功能思路二:浏览器图片的上传下载显示通过数据库实现1、将图片添加到数据库 序言  &emsp

序言

  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--

本文标题: SpringMVC图片的上传和下载功能

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

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

猜你喜欢
  • SpringMVC图片的上传和下载功能
    目录序言思路一:浏览器图片的上传下载显示通过本地实现1、图片上传功能2、图片下载功能思路二:浏览器图片的上传下载显示通过数据库实现1、将图片添加到数据库 序言  &emsp...
    99+
    2023-03-20
    Spring MVC 图片上传下载 Spring MVC 图片下载
  • android实现图片上传功能(springMvc)
    本文实例为大家分享了Android图片上传的具体代码,供大家参考,具体内容如下 Android端: String fileName = tvFilename.getText(...
    99+
    2022-06-06
    图片上传 图片 Android
  • SpringMVC实现文件上传下载功能
    目录导入需要的依赖包一、单个文件上传二、多个文件上传三、上传文件列表显示四、文件下载今天遇到文件上传的问题,使用Ajax方式进行提交,服务器一直报错The current reque...
    99+
    2024-04-02
  • Spring MVC图片的上传和下载功能怎么实现
    这篇文章主要介绍了Spring MVC图片的上传和下载功能怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring MVC图片的上传和下载功能怎么实现文章都会有所收获,下面我们一起...
    99+
    2023-07-05
  • Android编程实现图片的上传和下载功能示例
    本文实例讲述了Android编程实现图片的上传和下载功能。分享给大家供大家参考,具体如下: 在实现一个Android的WEB服务客户端,比如微博,论坛客户端时,经常会使用到图片...
    99+
    2022-06-06
    示例 图片 Android
  • Spring MVC 图片的上传和下载
    ✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:...
    99+
    2023-08-20
    spring java mvc
  • 了解SpringMVC的上传和下载
    目录springmvc.xml的配置web.xml的配置主要代码NewFile.jspsuccess.jsp总结springmvc.xml的配置 <beans xmlns=...
    99+
    2024-04-02
  • 详解SpringMVC如何实现文件上传和下载功能
    小编这次要给大家分享的是详解SpringMVC如何实现文件上传和下载功能,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。本文实例为大家分享了SpringMVC实现文件上传和下载的具体代码,供大家参考,具...
    99+
    2023-05-31
    springmvc 实现文件 如何实现
  • SpringMVC+Ajax如何实现文件批量上传和下载功能
    小编给大家分享一下SpringMVC+Ajax如何实现文件批量上传和下载功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!上传form:<form ...
    99+
    2023-06-08
  • springMVC实现文件上传和下载
    本文实例为大家分享了springMVC实现文件上传和下载的具体代码,供大家参考,具体内容如下 1准备工作 web.xml文件导入DispatcherServlet,Character...
    99+
    2024-04-02
  • 如何android在中使用springMvc实现图片上传功能
    本篇文章为大家展示了如何android在中使用springMvc实现图片上传功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。具体内容如下Android端:String fileName = tvF...
    99+
    2023-05-31
    android roi springmvc
  • Android实现图片上传功能
    最近在开发中,涉及到用户的意见反馈功能这一方面的开发,需要用户输入的文字或者提交的图片,效果大概类似于微信朋友圈那样的图片选择器,一开始自己找了个用universal-imag...
    99+
    2022-06-06
    图片上传 图片 Android
  • Django实现上传图片功能
    本文实例为大家分享了Django实现上传图片的具体代码,供大家参考,具体内容如下 1.设置存放上传的图片的文件夹 settings.py MEDIA_ROOT = os.path...
    99+
    2024-04-02
  • Android实现上传图片功能
    本文实例为大家分享了Android实现上传图片功能的具体代码,供大家参考,具体内容如下 设定拍照返回的图片路径 protected void image(String...
    99+
    2024-04-02
  • WebUploader实现图片上传功能
    本文实例为大家分享了WebUploader实现图片上传的具体代码,供大家参考,具体内容如下 描述:springmvc 在jsp页面实现 WebUploader插件上传图片, 上传到 ...
    99+
    2024-04-02
  • js实现上传图片功能
    前端上传图片的原理是:运用input type=“file”的标签获取图片,再使用FileReader这个对象 new 一个实例,通过这个对象的readAsDataURL()方法读取...
    99+
    2024-04-02
  • 利用SpringMVC如何实现一个文件上传下载功能
    这篇文章给大家介绍利用SpringMVC如何实现一个文件上传下载功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。文件上传文件上传是项目开发中最常见的功能。为了能上传文件,必须将表单的method设置为POST,并将e...
    99+
    2023-05-31
    springmvc 文件上传下载
  • Vue实现文件上传和下载功能
    本文实例为大家分享了Vue实现文件上传和下载功能的具体代码,供大家参考,具体内容如下 1、a标签download属性 在H5中,为a标签新增了一个download属性,来直接文件的...
    99+
    2024-04-02
  • springMVC怎么实现文件上传和下载
    本篇内容介绍了“springMVC怎么实现文件上传和下载”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本文实例为大家分享了springMVC...
    99+
    2023-06-20
  • SpringMVC实现上传下载文件
    本文实例为大家分享了SpringMVC实现上传下载文件的具体代码,供大家参考,具体内容如下 一、SpringMVC专门提供了CommonsMultipartResolver组件用于文...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作