Java实现头像上传
#Java实现头像上传
看网课的时候视频中用到下方的路径
== String realPath = session.getServletContext().getRealPath(“/upload”);==
这样会导致一个问题,就是每次服务器重启之后,这个文件就会找不到,不过也不用担心,在企业里如果文件很多就会有专门的文件服务器,写ip地址加文件名字就行,自己解决这个bug的话,我用到的是写在本地文件中,下面开始代码环节
首先要写一个配置类,因为大多数浏览器为了安全不允许访问你的本地文件,所以写一个映射路径,这段代码的意思就是一个拦截器,只要访问addResourceHandler(“xxx”)这个路径就会映射到addResourceLocations(“mmm”)这个真实路径
public static final int AVATAR_MAX_SIZE =10 *1024*1024; //设置上传文件的最大值public static final List<String> AVATAR_TYPE = new ArrayList<>(); //限制上传文件的类型static {AVATAR_TYPE.add("image/jpeg");AVATAR_TYPE.add("image/png");AVATAR_TYPE.add("image/bmp");AVATAR_TYPE.add("image/gif");AVATAR_TYPE.add("image/webp");}//上面是无关的东西//在这里我写在了控制层,可以传参到业务层写,JsonResult<>是模型类public JsonResult<String> updateUserAvatar (HttpSession session, MultipartFile file){if (!AVATAR_TYPE.contains(file.getContentType())){ //这些是抛出的异常可以不用管,但是也会介绍一下,file是上面的形参throw new FileTypeException(); // 文件类型不符异常}if (file==null){throw new FileEmptyException(); //文件空异常,如果文件是个空,扔出去}if (file.getSize()>AVATAR_MAX_SIZE){throw new FileSizeException(); //文件大小异常}
//第一步::写一个路径,和配置类一样String realPath ="C:/Users/32189/Desktop/壁纸/test/0/"; // 随便写一个路径,但是需要和配置类中一样,注意 / 符号别漏
// session.getServletContext().getRealPath("/upload"); 之前的路径
//第二步::用文件检测目录,没有就创建File dir = new File(realPath); //在这个路径下创建一个文件if (!dir.exists()){ //检测目录是否存在 //如果这个文件不存在(目录不存在自然就创建不了文件),用文件指向目录,常用手段dir.mkdirs(); //创建目录 //创建这个目录}
//第三步::统一后缀名String originalFilename = file.getOriginalFilename(); //获取传过来的文件的原来的名字int i = //lastIndexOf(“ . ”),返回某个字符(串)在一个长的字符串中最后出现的位置originalFilename.lastIndexOf("."); //在这里是获取后缀名那个点(.png)中点的下标String png = //substring(i),是获取从下标i开始到最后的字符串,包括i,例如(.png)originalFilename.substring(i); //substring(i,i+2)也有两个参数的用法,获取第i个和第i+2个之间的字符串String filename = //随机生成一个名字加上后缀UUID.randomUUID().toString().toUpperCase()+png; //为什么随机生成一个名字呢,因为大部分企业都这么做,如果两个用户上传两个名字一样的会覆盖(UUID是生成随机字符串的一个类,toUpperCase()是字母全部大写)
//第四步::在该目录下创建一个空白文件,文件名字随意File dest = new File(dir,filename); //在这个目录下创建一个空白的文件
//第五步::把形参的文件数据用提供的api写入到空白文件中 try {file.transferTo(dest);//java提供了一个api,底层还是io流,需要保证后缀一致 //将file中的数据写入到这个空文件中} catch (IOException e) {throw new FileuploadIOException();}
//第六步::拼接完整地址 目录加文件名字 String avatar ="/test/"+filename; //返回配置类映射路径+文件名字 变量avatar是往数据库存放的地址,也是返回前端的数据,直接可用
希望可以帮助需要的人
Java实现头像上传相关推荐
- java圆形头像上传_Android自定义控件实例,圆形头像(图库 + 裁剪+设置),上传头像显示为圆形,附源码...
** *圆形ImageView,可设置最多两个宽度不同且颜色不同的圆形边框.*设置颜色在xml布局文件中由自定义属性配置参数指定*/ public class RoundImageView exten ...
- java实现头像上传 前后端
前端jsp: form表单要加入: enctype="multipart/form-data" method="post" <tr><td&g ...
- java图片如何上传_Java如何将图片上传到服务器
Java如何将图片上传到服务器 发布时间:2020-11-10 17:28:18 来源:亿速云 阅读:96 作者:Leah 这篇文章将为大家详细讲解有关Java如何将图片上传到服务器,文章内容质量较高 ...
- java注册头像_注册页面头像上传的实现(javaweb相关)
注册页面头像上传的实现: 1. 注册页面:register.jsp 两种方式实现图片上传: pageEncoding="UTF-8"%> register body{ mar ...
- Java实现用户头像上传(修改默认文件大小限制)
概述 每次说起文件上传,就不得不提一下前端的实现方式,说来也奇怪,本博主最热门的博客居然也是文件上传,3万多的访问量占了总访问量的一多半:<传统form表单提交方式的文件上传与文件存储>, ...
- java cropper 上传_java web 网站头像上传处理 (springmvc +bootstrap+cropper)
制作头像上传.请根据您的实际需求,修改代码,不完全正确,仅供参考! 前端页面设计使用bootstrap ,头像预览和剪裁工具使用cropper 后台使用springmvc. 现在来看前端的页面设计 前 ...
- java微信头像失效问题,将微信头像上传至七牛云
抓取微信头像保存之后,过一段时间会出现头像失效问题,到现在还是不清楚微信头像地址失效规则,为了避免微信头像失效导致的头像显示问题,最好是微信头像上传到第三方云存储空间,这里用的是七牛云存储. 七牛云提 ...
- java 上传头像_javaWeb头像上传功能
[实例简介] 一个实现可抓取编辑,头像上传功能.只要下载就可以运行,附有源码 [实例截图] [核心代码] 头像上传 └── 头像上传 └── ZoomImageDemo ├── src │ └── ...
- 公众号客服头像上传-java
公众号客服头像上传:form-data格式 亲测,可以直接使用 public String addCustomer(MultipartFile file, Integer publicNumberId ...
最新文章
- an初始java运行环境错误_【环境问题】STS(eclipse)启动出现错误提示:an error hava occured,see the log......
- python列表--查找集合中重复元素的个数
- php memcached windows,php memcached windows安装
- C语言代码规范(五)函数参数个数
- 【深入理解Java虚拟机学习笔记】第二章 Java 内存区域与内存溢出异常
- Windows 2000服务器安全配置精华技巧
- vc浏览器_【36氪基金X一刻】零基础VC/PE行研标准班7月10日线上开课
- javascript ()、[]、{}的区别
- 如何读取 PEM 文件以获取公钥和私钥
- 台式计算机接口示意图,台式机硬盘接口_台式机硬盘接口图解
- 爬取12306验证码图片
- Disconnected:No supported authentication methods available
- matlab基础与符号计算,Chapter 7. MATLAB符号计算基础
- 新鲜出炉的三维动画应用领域,学3D建模好工作找不完
- 微信开发者工具 当前系统代理不是安全代理,是否信任?问题之完美解决
- ❤️Java17 发布了,YYDS!重磅!Oracle 宣布 JDK 17 可以免费商用了。。
- win7记事本如何转换html,win7记事本程序在哪里 64位win7记事本程序怎么安装
- SAP PS 第0节 PS PA有哪些知识点及IDES练习
- 使用XUnit的测试驱动开发过程
- 怎么给MP4加密、选用隐大师U盘
热门文章
- linux系统可以安装天正吗,Linux上安装Wine运行AutoCAD实例[多图]
- 速学堂第七章作业编程题答案(自写)
- 速(尚)学堂第十章IO技术章末作业自写答案
- ESP-WHO(一)ESP32 摄像头驱动分析
- pattern java怎么用_Pattern Java设计模式23种每个一个举例使用,名称直接对应英文,简单明了 Develop 238万源代码下载- www.pudn.com...
- 爬梯:Redis全解析(二)
- powershell脚本静默卸载软件
- CAD专用卸载工具,完美彻底卸载清除干净cad各种残留注册表和文件。
- svn分支合并到主干可能出现异常信息
- 利用adb指令为IPTV盒子安装应用