Java实现图片的上传和显示

news2024/9/20 6:38:40

简单说两句

作者:后端小知识

CSDN个人主页:后端小知识

🔎GZH后端小知识

🎉欢迎关注🔎点赞👍收藏⭐️留言📝

文章目录

  • 🎈前言
    • 🎄前端:
    • 🎡后端:
  • 👓一、图片上传和显示
    • 总体流程:
  • 🍕二、使用步骤
    • 1.图片上传和显示
    • 2.前端(Vue)部分
      • 1)HTML表单的部分,用于获取用户输入的新闻图片地址链接:
      • 2)添加一列图片,并将从服务器获取的新闻图片展示在该列中:
    • 3.后端(Servlet)部分
  • 🍳总结


🎈前言

提示:前端Vue(Vue.js)+后端Servlet实现图片的上传和显示

🎄前端:

软件工具:Visual Studio Code
技术:Vue.js

🎡后端:

软件工具:idea
技术:Servlet、Javaweb


提示:以下是本篇文章正文内容,下面案例可供参考

👓一、图片上传和显示

总体流程:

1、用户在前端页面中选择新闻图片并提交表单。
2、表单数据被发送到Java Servlet后台。
3、Java Servlet后台接收到表单数据并处理,将图片保存到服务器上。
4、Java Servlet后台将图片URL信息保存到数据库中。
5、前端页面重新发起请求,从数据库中获取新闻列表。
6、新闻列表被发送到前端页面,通过Vue.js进行渲染,将新闻以及对应的图片显示出来。

🍕二、使用步骤

1.图片上传和显示

实际效果运用如下:
请添加图片描述

2.前端(Vue)部分

1)HTML表单的部分,用于获取用户输入的新闻图片地址链接:

				<div class="am-form-group">
							<label for="user-name" class="am-u-sm-3 am-form-label">
								新闻图片
							</label>
							<div class="am-u-sm-9">
								<input  v-model="picture" id="roleName" required="required" placeholder="请输入新闻图片地址链接" value="1"
									name="picture" type="file">
								<small id="helpRole">选择新闻图片。</small>
							</div>
						</div>

效果展示:
请添加图片描述

关键代码解读:

type=“file” 这是本段代码的关键,上传图片的本质是上传文件,所以这个输入框要设置为file类型的。在 HTML 表单中,type属性为 “file” 的 input 元素允许用户通过浏览和选择文件的方式上传文件到服务器。

2)添加一列图片,并将从服务器获取的新闻图片展示在该列中:

							<el-table-column prop="picture" label="图片" width="180" height="100 ">
								<template slot-scope="scope">
									<img :src="'http://localhost:9090/NewsReleaseSystem/upload'+scope.row.picture" alt="新闻图片" width="100px" height="100px">
								</template>
							</el-table-column>

效果展示:
请添加图片描述

这段代码的作用是在 Element UI 表格组件中添加一列图片,用于显示从服务器获取的新闻图片。具体来说:

  • prop=“picture” 表示当前列对应的数据源属性名为 picture。 label=“图片” 表示当前列的表头文本为 “图片”。
  • width=“180” 和 height=“100” 分别设置了图片列的宽度和高度。 在 中使用了 Vue.js的插槽(slot)机制来自定义表格单元格内容
  • slot-scope=“scope” 表示将当前作用域对象 scope 传递到插槽中。直白说就是为了获取当前行所有数据
  • img 标签的 :src 属性绑定了一个动态数据,即通过拼接字符串将 scope.row.picture 这个图片地址与服务器上传文件地址的前缀组合在一起形成完整的图片地址,从而显示图片。

3.后端(Servlet)部分

注意:前提是已经创建好new实体类,并且导入相关依赖
mapper文件: 写好查询新闻列表sql语句

请添加图片描述
Service:
请添加图片描述
1)从数据库中查询所有的新闻列表,并返回一个包含所有新闻的 List<News> 对象。

Servlet:
请添加图片描述
1)从HTTP请求中获取名为 “picture” 的上传文件,并将其存储在一个 Part 对象中,以便进行后续处理。

2)getServletContext().getRealPath("upload") 方法返回一个字符串,表示服务器上要将上传文件保存到的文件夹路径。在这种情况下,文件夹的名称为 “upload”。该方法获取的文件夹路径是基于Web应用程序根目录的相对路径。

然后,new File(storePath).mkdirs() 方法创建一个名为 “upload” 的文件夹,如果它不存在于指定的路径(在这里是Web应用程序的根目录)中。

接下来,通过 picture.getSubmittedFileName() 方法获取上传文件的原始文件名。然后使用 System.currentTimeMillis() 方法获取当前系统时间的毫秒数,并将其添加到文件名中,以确保文件名的唯一性。最终生成的文件名被存储在 filename 变量中。

最后,picture.write(storePath+"/"+filename) 将上传的文件写入磁盘上的文件夹,在这里是 “upload” 文件夹。实际上,这行代码将上传文件保存到了指定路径下的名为 filename 的文件中。

请添加图片描述
1)通过将 “/” 和 filename 连接起来,生成一个完整的图片路径,并将其设置为新闻对象的图片路径属性。
注意:与上文提到的上传图片到服务器的代码配合使用。也就是先将图片保存到服务器上指定位置,然后再将 news 对象的图片路径设置为上传的图片在服务器上的位置。


🍳总结

1)以上就是今天要讲的内容,本文仅仅简单介绍了Vue(Vue.js)+Servlet,用表单实现新闻图片上传和显示。
2)需要注意的是,以上代码只实现了基本的图片上传和显示功能,还需要进一步优化和完善。例如,在处理文件上传时,没有对上传文件进行大小、类型等方面的验证,以防止恶意攻击或误操作导致的问题发生。同时,在保存上传文件时,还需要考虑文件名冲突、文件夹权限等诸多细节问题。

【都看到这了,点点赞点点关注呗,爱你们】😚😚

image-20230409171712261

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rmH4vAaR-1687096779957)(null)]

结语

谢谢你的阅读,由于作者水平有限,难免有不足之处,若读者发现问题,还请批评,在留言区留言或者私信告知,我一定会尽快修改的。若各位大佬有什么好的解法,或者有意义的解法都可以在评论区展示额,万分谢谢。
写作不易,望各位老板点点赞,加个关注!😘😘😘

💬

作者:后端小知识

CSDN个人主页:后端小知识

🔎GZH后端小知识

🎉欢迎关注🔎点赞👍收藏⭐️留言📝

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/660300.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ESP32网络应用 -- ESP32-S3使用HTTP协议获取城市天气数据

超文本传输协议(Hypertext Transfer Protocol,HTTP),是一种建立在TCP协议之上,应用非常广泛的请求-响应协议,关于HTTP协议的详细描述,网上已经不乏文章,此处不再详细论述。 作为一款网络功能强大Wi-Fi SOC芯片,ESP32-S3可以通过ESP-IDF编程框架提供的应用程序接口,方…

腾讯云3年轻量应用服务器入口(不要一年的坑)

腾讯云轻量应用服务器2核2G4M和2核4G5M可以一次性选三年&#xff0c;3年轻量2核2G4M带宽396元三年、3年轻量2核4G5M服务器628元三年&#xff0c;轻量应用服务器第二年xufei贵&#xff0c;大家都知道&#xff0c;所以一次性选三年&#xff0c;毕竟限制条件是腾讯云新用户&#x…

8年测试超强整理,性能测试-压力测试-负载测试,卷起来...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 软件测试包括不同…

软件测试第一次做项目之银行项目【操作细节总结】

在我们的日常在金融或银行软件测试工作中都有哪些内容需要测试&#xff1f;在这些测试的内容中如何去更好的掌握测试技能保证测试质量&#xff0c;一起来学习探讨交流。 下面为银行测试点的概括&#xff1a; 根据上图&#xff0c;我们可以从以下几个方面重点关注&#xff1a; …

跨国能源公司如何成功地完成SAP S/4HANA迁移

哪种升级转换方法更适合跨国集团的S/4HANA 实施&#xff0c;如果数据需要选择性迁移&#xff0c;并且ERP系统的停机时间要降至最低&#xff1f;与 IBM 和 SNP 合作的客户Arauco Group&#xff0c;该企业的成功案例提供了一些启示。 ARAUCO是世界领先的可再生能源生产商之一&am…

Security 详解—原理(1)

1.简介&#xff1a; Spring 是非常流行和成功的 Java 应用开发框架&#xff0c;Spring Security 正是 Spring 家族中的成员。Spring Security 基于 Spring 框架&#xff0c;提供了一套 Web 应用安全性的完整解决方案。 1.1 特性&#xff1a; 支持对身份认证和访问鉴权的自定义…

不可盲目优化,否则不是缘木求鱼就是南辕北辙

作为在编码这块自留地里深耕多年的码农&#xff0c;凭借着自认为丰富的经验加上专业领域的博览群书&#xff0c;自觉对程序优化还是有点感觉、有点心得的。但最近的经历让我不得不感慨&#xff0c;“不听老人言&#xff0c;吃亏在眼前“还是很有道理的。 软件优化这件事&#x…

VS code安装与配置

1.VS code介绍 2.VS code安装 2.1解压&#xff0c;并打开解压之后的文件夹&#xff0c;点击VSCodeUserSetup-x64-1.67.0&#xff0c;右击&#xff0c;选择以管理员身份运行 2.2点击同意&#xff0c;点击下一步 2.3更换安装路径 2.4点击下一步 2.5勾选创建桌面快捷方式&…

如何在 Linux 中列出 Systemd 下所有正在运行的服务

动动发财的小手&#xff0c;点个赞吧&#xff01; Linux系统提供多种系统服务&#xff08;如进程管理、登录、syslog、cron等&#xff09;和网络服务&#xff08;如远程登录、电子邮件、打印机、虚拟主机、数据存储、文件传输、域名解析等&#xff09; &#xff08;使用 DNS&am…

腾讯云服务器地域有什么区别怎么选比较好?

腾讯云服务器地域什么区别&#xff1f;云服务器地域怎么选择&#xff1f;地域是指云服务器所在机房的地理位置&#xff0c;用户距离地域越近网络延迟越低&#xff0c;速度越快&#xff0c;所以地域就近选择即可。广州上海北京等地域网站域名需要备案&#xff0c;中国香港或其他…

C# hello world

目录 一 C#简介 二 Hello world程序 三 C#未来的发展趋势 四 C#学习路线推荐 一 C#简介 C#&#xff08;C Sharp&#xff09;是微软开发的一种面向对象的编程语言&#xff0c;它于2000年发布&#xff0c;并被设计为在.NET平台上运行。C#语言具有简单、安全、类型安全、可扩…

飞只因太美,给你的首页装上吧!

原文链接&#xff1a;飞只因太美&#xff0c;给你的首页装上吧&#xff01; 推荐阅读 基于 Hexo 从零开始搭建个人博客&#xff08;一&#xff09;基于 Hexo 从零开始搭建个人博客&#xff08;二&#xff09;基于 Hexo 从零开始搭建个人博客&#xff08;三&#xff09;基于 H…

你要一定用的上的Postman 使用小技巧

目录 一、什么是 Postman&#xff08;前世今生&#xff09; 二、使用变量 2.1 变量作用域适用于 Postman 中不同的场景 2.2 编辑全局和环境变量 2.3 编辑集合变量 2.4 使用系统内置动态变量 三、Postman 请求生命周期 3.1 在前置请求&#xff08;pre-request script&…

【期末总复习】神经网络与深度学习蒲公英书

浅层学习 one-hot向量 相似度的概念 局部表示和分布式表示示例 学习器 准确率 机器学习的三个基本要素&#xff1a;模型、学习准则、优化算法 【概念】期望风险 【概念】损失函数 【运用】三分类问题 【概念】过拟合 【概念】欠拟合 超参数 【选择 / 判断】验证集概念 线性回归…

C语言实现链表

绪论 机遇对于有准备的头脑有特别的亲和力。本章将讲写到链表其中主要将写到单链表和带头双向循环链表的如何实现。 话不多说安全带系好&#xff0c;发车啦&#xff08;建议电脑观看&#xff09;。 附&#xff1a;红色&#xff0c;部分为重点部分&#xff1b;蓝颜色为需要记忆的…

oracle expdp导致system表空间满

今天下午&#xff0c;项目经理反馈有套11204版本数据库无法使用了&#xff0c;立刻登录检查环境发现SYSTEM表空间使用率99.99%了 TABLESPACE_NAME MAXSIZE_MB ACTUALSIZE_MB USED_MB FREESPACE_MB SPACE USAGE ----------------- ---------- ------------- ---------- …

单向散列函数(哈希)【密码学】(一)

目录 一、前言&#xff1a;密码学有什么用&#xff1f; 二、单向散列函数 1、单向函数 2、散列函数 3、单向散列函数 三、怎么解决完整性问题 四、如何设置合适的安全强度 一、前言&#xff1a;密码学有什么用&#xff1f; 二、单向散列函数 单向散列函数就是用来解决…

哈工大计算机网络传输层协议详解之:可靠数据传输的基本原理

哈工大计算机网络传输层协议详解之&#xff1a;可靠数据传输的基本原理 可靠数据传输原理 什么是可靠&#xff1f; 不错、不丢、不乱 可靠数据传输协议 可靠数据传输对应用层、传输层、链路层都很重要 网络Top-10问题 信道的不可靠特性决定了可靠数据传输协议(rdt)的复杂性…

【最全】如何不写代码将 Dicom 图像转 Nifti 格式, 7种工具任你选!

大多数医学成像设备以复杂的 DICOM 格式(后缀 .dcm)的变体存储图像。许多科学工具希望医学图像以更简单的 NIfTI 格式&#xff08;后缀 nii.gz&#xff09;存储。事实上&#xff0c;我们做深度学习基本都是使用的 nii.gz 格式或者 nii 格式。 那么&#xff0c;如何将 dicom 格…

一文吃透 CSS Flex 布局

原文链接&#xff1a;一文吃透 CSS Flex 布局 教学游戏 这里有两个小游戏&#xff0c;可用来练习 flex 布局。 塔防游戏 送小青蛙回家 Flexbox 概述 Flexbox 布局也叫 Flex 布局&#xff0c;弹性盒子布局。 它决定了元素如何在页面上排列&#xff0c;使它们能在不同的屏幕…