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

武汉立城建设发展公司网站seo优化一般包括

武汉立城建设发展公司网站,seo优化一般包括,中国建设银行手机版网站首页,网站建设需求分析写什么✅作者简介: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://www.dinnco.com/news/86041.html

相关文章:

  • 网站制作素材图片杭州seo排名收费
  • 牟长青 做网站推广的四个基本要点大数据培训班需要多少钱
  • 网站制作需要什么软件有哪些广州seo关键字推广
  • 招聘网站报表怎么做网页首页设计图片
  • 微网站 下载seo具体是什么
  • 佛山移动网站建设公司2023年10月疫情还会严重吗
  • 广元市城乡规划建设监察大队网站长沙百度公司
  • 东莞网站推广外包seo人员是什么意思
  • wordpress云建站教程视频郑州做网站推广
  • 河南网站制作价格推广赚钱的平台
  • 网站开发项目步骤史上最强大的搜索神器
  • 手机企业网站怎么做如何用百度平台营销
  • 自己可以进行网站建设吗希爱力的作用与功效
  • 做网站需要ps吗百度网盘资源搜索引擎
  • 平面网站模版谷歌seo是指什么意思
  • 网站建设及推广图片深圳百度seo怎么做
  • 上海利恩建设集团有限公司网站关键词分类工具
  • 公司网站静态模板百度服务中心人工24小时电话
  • 个人备案的域名拿来做别的网站百度搜索引擎的功能
  • 做产品网站需要注意怎么优化关键词排名优化
  • 山西有哪些做网站的公司石家庄疫情最新情况
  • 营销管理网站制作百度关键词搜索趋势
  • 在闲鱼可以做网站吗网络营销五个特点
  • wordpress 页面 评论网站的seo方案
  • 买过域名之前就可以做网站了吗?百度极速版推广员怎么申请
  • 龙南建设局网站企业网站优化工具
  • 扬中网站建设新品怎么推广效果最好
  • 网站手机站怎么做设计公司网站设计
  • 无锡 学校网站建设百度客服系统
  • 网站建设模式有哪些内容付费内容网站