我在上一篇文章SSM+Layui实现文件上传服务器中展示了如何将图片上传至服务器,保存到SQL server数据库中,本篇文章主要讲的是将图片上传到服务器上,保存在服务器的磁盘上,然后将图片路径保存到数据库中,最后实现在客户端展示图片。

在上一篇文章末尾,我阐述了两种图片(文件)上传到服务器后不同的保存方式。直接存放到数据库中,适合图片较小、数量少的应用场景,因为从数据库中读取图片数据会比较慢,特别实在图片较大、网络环境差的情况下。把图片存放到服务器磁盘、数据库存放图片存放路径,前台页面直接通过路径访问图片,这种方式适合需要展示的图片数量多的场景下。

技术框架说明

前台采用的是Layui框架,后台采用Java的SSM框架。前台的框架可以替换成其他的框架,主要功能实现的逻辑在于Java部分的代码。

上传图片的html

layui上传代码

上传图片JS

引入layui.js,使用upload模块

上传js

这是上传的js代码,具体的解释请转到我上一篇文章查看。

需要的jar包和springmvc-config.xml配置

maven的jar包

springmvc-config.xml配置

上传Java代码(重点)

①、使用MultipartFile来接收前台传过来的文件,记得设置@RequestParam("file")。其中file我没有找到关于它的说明,这个和bootstrap的文件上传有区别。

②、设置url路径,这个存放到数据库中,后续前台展示图片就是直接将这个url赋值到img标签的src上。url=returnUrl+fileName组成。重点是returnUrl的形式是:

http://+服务器的IP:端口号③、fileName重新设置图片的名字。需要考虑上传的图片存在重名的情况,我这里采用了时间+随机数的方式对图片重新命名。

getServerIp方法

以上两个方法是获取服务器IP的方法。

将图片重命名,存放到服务器的指定位置后,将路径存放到数据库,展示的时候直接在数据库中查询然后将图片的url替换到img标签的src上即可。

配置tomcat虚拟路径(重点)

存放完图片后,在实现前台展示前,最重要的是在tomcat中配置虚拟路径。

数据库中存放的url路径的形式是这样的:

在tomcat的conf文件夹下打开server.xml进行编辑:

server.xml

拉到文件最后,在Host便签内添加:

其中,docBase指向你存放图片的文件夹,path为虚拟的项目名。配置完使用tomcat启动项目,就能正常访问到图片。

在开发中,我们经常会使用eclipse启动tomcat,这个时候tomcat的配置就不生效,因为这种方式启动tomcat时,使用的时eclipse的tomcat配置,因此,还需要在eclipse修改tomcat的配置,具体操作如下:

双击server中的tomcat,打开tomcat的配置,选择Modules选项卡

点击Add External Web Module. ,Document base输入图片存放的文件夹路径,在path输入虚拟项目名,保存即可完成eclipse中tomcat的虚拟路径配置

至于如何展示到前台的代码我就不放图了。将你需要展示的图片url查询传递到前台,赋值到img标签的src即可。

推荐阅读:

1、Layui怎么实现根据table行数据显示不同按钮

2、sqlserver——with as使用方法和注意事项

3、Java 非对称加密算法实现登陆账号密码加密传输功能

举报/反馈

java下传图片到tomcat服务器后,如何在页面显示,java图片上传服务器及客户端显示图片...相关推荐

  1. tomcat temp 大量 upload 文件_渗透测试之文件上传漏洞总结

    文末下载上传环境源码 客户端 js检查 一般都是在网页上写一段javascript脚本,校验上传文件的后缀名,有白名单形式也有黑名单形式. 查看源代码可以看到有如下代码对上传文件类型进行了限制: 我们 ...

  2. 拉取ftp服务器上的文件_winscp和云服务器,2步实现winscp将文件上传到腾讯云Linux云服务器...

    WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端.同时支持SCP协议,它的主要功能就是在本地与远程计算机间安全的复制文件.与使用FTP上传代码相比,通过WinSCP可以直接使 ...

  3. 网站文件上传到服务器怎么不显示,我已经上传文件,为什么还看不到网站首页?...

    首页 > 虚拟主机 > 已经上传文件还看不到网站 我已经上传文件,为什么还看不到网站首页? 有时候主机用户已经上传了网页文件,但是访问域名的时候,还是看不到他的网站.可能看到的是类似这样的 ...

  4. ajax实现下拉列表回显,layui实现下拉复选功能的例子(包括数据的回显与上传)

    一.layui下拉复选实现的背景:实现一个管理员拥有多个权限 二. 具体实现: //依赖资源 //页面显示 角色: xm-select-search xm-select-skin="defa ...

  5. java优化上传速度慢怎么办_如何提高多个文件的ftp上传速度[Java]

    我使用org.apache.commons.net.ftp.FTPClient实现了 java代码将文件上传到服务器 对于多个文件,ftp上传速度非常慢. 我怎样才能提高速度. – 改变图书馆? 用于 ...

  6. 微信小程序java中文乱码_如何解决微信小程序显示中文无法上传或者出现乱码的问题?...

    今天小编给大家讲解如何解决微信小程序显示中文无法上传或者出现乱码的问题?有需要或者有兴趣的朋友们可以看一看下文,相信对大家会有所帮助的. 在formData中对文字进行编码,使用encodeURI() ...

  7. JS - 文件上传组件WebUploader使用详解1(带进度的文件上传

    一.基本介绍 1,什么是 WebUploader? WebUploader 是由百度公司团队开发的一个以 HTML5 为主,FLASH 为辅的现代文件上传组件. 官网地址:http://fex.bai ...

  8. 4gl 上传文件_速看!关于浙江移动微法院新版图文上传和签名的使用说明

    点击关注"中国移动微法院研发基地" 浙江移动微法院文件上传目前支持多种上传方式,包括手机图库.相机.本地PDF.本地WORD.基于聊天(PDF/WORD),且每种方式上传文件时均可 ...

  9. php上传文件表单,php中关于普通表单多文件上传的处理方法

    然而有些情况只需要传递几个文件,而且文件体积并不太大,这种情况下使用组件则有点牛刀杀鸡的感觉,通过html自带的表单就可以实现需要的功能,关键在于后台接收程序的处理. php处理上传做的很方便,上传文 ...

最新文章

  1. ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml)
  2. [Java]读取文件方法大全
  3. 拖拖拽拽画JAVA报表?
  4. [JavaScript] 多数前端工程师都没注意到的一个关于console.log()的坑
  5. redis开启远程连接访问和需要密码的方法
  6. [转]C# JSON格式的字符串读取到类中
  7. 微软拼音输入法 2003 精选版 怎么用
  8. 蓝桥杯—大胖子走迷宫—广搜
  9. 基于STM32+UCOS的智能车载终端系统总结
  10. 详解通往Web3的护照:去中心化身份DID
  11. python计算时间间隔_python计算时间差
  12. Android EventBus-----(EventBus简单使用)
  13. 如何给模型加入先验知识?
  14. Ubuntu16.04下彻底卸载clion,安全可复原方法
  15. 动态壁纸:酷炫手机壁纸
  16. xp计算机如何查看内存大小,怎么查看电脑内存大小_xp怎么看电脑内存大小
  17. 读书笔记-精准努力-勇敢地直面问题
  18. linux桌面环境占用内存对比,很轻很强大:轻量级桌面环境比较
  19. 医院HIS系统与LIS系统源码
  20. 阿里巴巴计划分拆中国万网赴美上市

热门文章

  1. 带你认识4种设计模式:代理模式、装饰模式、外观模式和享元模式
  2. 云图说|读请求太多怎么办?一键读写分离来帮忙
  3. 【文末彩蛋】数据仓库服务 GaussDB(DWS)单点性能案例集锦
  4. 适用初学者的5种Python数据输入技术
  5. 华为云推UGO:一手抓结构迁移,一手抓SQL转换
  6. 【华为云技术分享】使用CloudIDE快速体验基于华为云ModelArts SDK的AI开发
  7. #化鲲为鹏,我有话说# 鲲鹏弹性云服务器配置 Tomcat
  8. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(1)
  9. (组合数学笔记)拆分数各类定义及公式总结
  10. oracle集群数据库事务配置,在 .NET中使用Oracle数据库事务-安装配置-Oracle频道-中国IT实验室...