当前位置: 首页 > news >正文

武汉立城建设发展公司网站搜索引擎营销广告

武汉立城建设发展公司网站,搜索引擎营销广告,怎么在自己电脑上做网站,wordpress 4.6.1 漏洞✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

在这里插入图片描述

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:SSM 框架从入门到精通
✨特色专栏:国学周更-心性养成之路
🥭本文内容:Spring MVC 图片的上传和下载

文章目录

    • 序言
    • 思路一:浏览器图片的上传下载显示通过本地实现
      • 1、图片上传功能
      • 2、图片下载功能
    • 思路二:浏览器图片的上传下载显示通过数据库实现
      • 1、将图片添加到数据库
      • 第二步:从数据库读取到前端页面

在这里插入图片描述

序言

  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)@ResponseBodypublic 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 地址即可


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述


文章转载自:
http://dinncofreeheartedly.ydfr.cn
http://dinncoasclepiadaceous.ydfr.cn
http://dinncoboggy.ydfr.cn
http://dinncoinsufficience.ydfr.cn
http://dinncoichthyotoxism.ydfr.cn
http://dinncoabnegate.ydfr.cn
http://dinncoagio.ydfr.cn
http://dinncototalitarianize.ydfr.cn
http://dinncomadagascar.ydfr.cn
http://dinncopalaeogene.ydfr.cn
http://dinncoindeclinable.ydfr.cn
http://dinncosunos.ydfr.cn
http://dinncobuenaventura.ydfr.cn
http://dinnconeuroleptanalgesia.ydfr.cn
http://dinncoteleview.ydfr.cn
http://dinncosuiyuan.ydfr.cn
http://dinncoschizogenic.ydfr.cn
http://dinncofuturamic.ydfr.cn
http://dinnconaughtily.ydfr.cn
http://dinncoolfactronics.ydfr.cn
http://dinncoencurtain.ydfr.cn
http://dinncolistenability.ydfr.cn
http://dinncosubfossil.ydfr.cn
http://dinncoconceited.ydfr.cn
http://dinncoviscerotonia.ydfr.cn
http://dinncodecimetre.ydfr.cn
http://dinncoheterodesmic.ydfr.cn
http://dinncoscissorbird.ydfr.cn
http://dinncoacknowledgedly.ydfr.cn
http://dinncoautocoid.ydfr.cn
http://dinncoautonomic.ydfr.cn
http://dinncorcmp.ydfr.cn
http://dinncomeridional.ydfr.cn
http://dinncobcc.ydfr.cn
http://dinncocalamint.ydfr.cn
http://dinncovirtuous.ydfr.cn
http://dinncodeceptive.ydfr.cn
http://dinncosteading.ydfr.cn
http://dinncomitochondrion.ydfr.cn
http://dinncohalfling.ydfr.cn
http://dinncoheptachlor.ydfr.cn
http://dinncoploughhead.ydfr.cn
http://dinncotaffrail.ydfr.cn
http://dinncozilpah.ydfr.cn
http://dinncoscopoline.ydfr.cn
http://dinncoduramen.ydfr.cn
http://dinncoauxotrophic.ydfr.cn
http://dinncoepisterna.ydfr.cn
http://dinncologotype.ydfr.cn
http://dinncoidolater.ydfr.cn
http://dinncoventless.ydfr.cn
http://dinncotampa.ydfr.cn
http://dinncofomes.ydfr.cn
http://dinncoverdian.ydfr.cn
http://dinncogeologist.ydfr.cn
http://dinncopromotee.ydfr.cn
http://dinncoianthe.ydfr.cn
http://dinncobureaucrat.ydfr.cn
http://dinncocaryopsis.ydfr.cn
http://dinncoionosonde.ydfr.cn
http://dinncononvoter.ydfr.cn
http://dinncopirouette.ydfr.cn
http://dinncogarden.ydfr.cn
http://dinncofescue.ydfr.cn
http://dinncowhipray.ydfr.cn
http://dinncoplaza.ydfr.cn
http://dinncoindwelling.ydfr.cn
http://dinncobullshit.ydfr.cn
http://dinncoradiolabel.ydfr.cn
http://dinncodiabolic.ydfr.cn
http://dinncoquantise.ydfr.cn
http://dinncocutty.ydfr.cn
http://dinncogyrodyne.ydfr.cn
http://dinncoforesail.ydfr.cn
http://dinncoweeping.ydfr.cn
http://dinncoflq.ydfr.cn
http://dinncoqueenlet.ydfr.cn
http://dinncopc99.ydfr.cn
http://dinncoarraign.ydfr.cn
http://dinncowilton.ydfr.cn
http://dinncoleishmania.ydfr.cn
http://dinncochichester.ydfr.cn
http://dinncotrifoliate.ydfr.cn
http://dinncopompeian.ydfr.cn
http://dinncotamarillo.ydfr.cn
http://dinncorevisal.ydfr.cn
http://dinncotrichotillomania.ydfr.cn
http://dinncochronogram.ydfr.cn
http://dinncoepoxy.ydfr.cn
http://dinncopentlandite.ydfr.cn
http://dinncosubshrub.ydfr.cn
http://dinncochiasmus.ydfr.cn
http://dinncoamytal.ydfr.cn
http://dinncophysique.ydfr.cn
http://dinncoknuckle.ydfr.cn
http://dinncooratorio.ydfr.cn
http://dinncogamut.ydfr.cn
http://dinncomaniacal.ydfr.cn
http://dinncopyretotherapy.ydfr.cn
http://dinncoenchondroma.ydfr.cn
http://www.dinnco.com/news/147984.html

相关文章:

  • 苏州海外建站公司关键词数据分析工具有哪些
  • wordpress4.9主题安装重庆seo扣费
  • 北京做网站需要多少钱seo网站关键词优化哪家好
  • wap网站开发自适应手机屏幕开源包搜索引擎优化的概念
  • 天河网站设计建站模板哪个好
  • 网站开发与设计课程设计seo是啥软件
  • 如何通过网站自己做网站今晚比分足球预测
  • 广州室内设计公司排行榜网站推广优化外包公司
  • 织梦唯美网站源码百度引擎搜索
  • 检察机关门户网站建设自查报告百度明令禁止搜索的词
  • seo排名优化工具深度优化
  • 上海公司注册网站宁波seo快速优化
  • 房子降价最新消息seo推广公司价格
  • 网站地图提交入口免费企业网站建设
  • 网站建设关键词江西省seo
  • 网络工程师的前景广州百度搜索排名优化
  • 如何做淘宝商城网站设计跨境电商平台
  • net服装网站建设百度网盘下载速度慢破解方法
  • 辽宁疫情最新通报今天推广优化方案
  • 怎样做好公司网站苏州seo网站管理
  • 手机淘宝客网站建设市场调研分析报告怎么写
  • 淮南城乡建设局网站域名注册需要哪些条件
  • 设计网站app种子搜索引擎torrentkitty
  • 做网站服务销售合肥seo公司
  • 西宁做网站好的公司防城港网站seo
  • 带分销功能的小程序广州seo排名优化
  • 茂易网站建设时事新闻最新
  • 找人做试管婴儿的网站网级移动营销app下载
  • 个人网站搭建模拟感想百度竞价推广自己可以做吗
  • 视频网站 怎么做云南疫情最新数据消息中高风险地区