之前在做注册页面头像上传时,发现直接通过request.getParameter方法获取到的值全是null,后面经过查找资料找出了原因,因为在普通注册页面的基础上加入了上传头像的功能,所以需要在form表单中加入enctype="multipart/form-data"属性值,并且在servlet中处理数据时也不能直接用getParameter来获取,而是需要解析request,将请求中的数据封装成FileItem,然后通过isFormField()判断里面的数据是否是普通字段来进行不同的数据处理,可以通过getString方法获取里面的所有普通字段,具体见下面代码:

//1、设置编码格式try {request.setCharacterEncoding("utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}response.setContentType("text/html;charset=utf-8");//2、创建文件上传核心对象DiskFileItemFactoryDiskFileItemFactory factory = new DiskFileItemFactory();//3、文件上传对象ServletFileUpload upload = new ServletFileUpload(factory);//设置相关参数upload.setHeaderEncoding("utf-8");//防止中文名乱码upload.setFileSizeMax(1024 * 1024 * 5);//单位:b//4、解析request,将请求中的数据封装成FileItemList<FileItem> list = null;try {list = upload.parseRequest(request);} catch (FileUploadException e) {e.printStackTrace();}User user = new User();String username = "";String filepath = "";//遍历集合解析数据int count = 0;for (FileItem item : list) {String string = null;try {string = item.getString("utf-8");} catch (UnsupportedEncodingException e) {e.printStackTrace();}if (item.isFormField()) {//普通字段if (count == 0) {//根据注册页面的数据依次对应,注意:最后一个需要将count置为0username = string;user.setUserName(string);count++;continue;}if (count == 1) {user.setPassWord(string);count++;continue;}if (count == 2) {user.setEmail(string);count++;continue;}if (count == 3) {user.setName(string);count++;continue;}if (count == 4) {user.setSex(string);count++;continue;}if (count == 5) {user.setTel(string);count++;continue;}if (count == 6){count = 0;continue;}} else {//表示是文件//文件上传//获取文件名String filename = item.getName();filename = FileUtils.getRealFileName(filename);filename = FileUtils.getUUIDFileName(filename);//确定存储路径filepath = "D:\\学生管理系统数据库\\photo\\" + username;File file = new File(filepath);if (!file.exists()) {file.mkdirs();}//拼接上传路径filepath = filepath + File.separator + filename;System.out.println(filepath);//获取输入流InputStream in = null;try {in = item.getInputStream();} catch (IOException e) {e.printStackTrace();}//获取输出流FileOutputStream out = null;try {out = new FileOutputStream(filepath);} catch (FileNotFoundException e) {e.printStackTrace();}//复制try {IOUtils.copy(in, out);} catch (IOException e) {e.printStackTrace();}//关流try {out.close();in.close();} catch (IOException e) {e.printStackTrace();}user.setPhotoAbsolute(filename);}}

在这里需要用到一个jar包 commons-io-1.4.jar

关于注册页面上传头像并在后台处理数据相关推荐

  1. asp上传头像mysql_asp 怎么在注册页面上传头像和保存头像到数据库

    注册表functionEn(){vartext1=document.getElementById("UN").value;if(text1==""){alert ...

  2. asp上传头像mysql,asp 怎么在注册页面上传头像和保存头像到数据库

    欢迎注册 头像: 用户名: 密码: 性别: 男 女 年龄: 邮箱: 注册

  3. 仿京东——我的界面(登录注册,上传头像)

    我的界面 布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:andr ...

  4. app上传头像处理Java_java后台加安卓端实现头像上传功能

    1.手机上传压缩后的图片到服务器 2.后台接收到图片进行图片重命名.保存 后台代码 package service; import java.io.File; import java.io.IOExc ...

  5. WordPress怎么使用支持注册用户上传自定义头像功能?

    WordPress怎么使用支持注册用户上传自定义头像功能?认Wordpress支持显示Gravatar头像,但目前由于众所周知的原因,申请Gravatar头像比较困难只能显示默认的古怪头像,对注册用户 ...

  6. SpringBoot-项目1-用户(注册,登录,修改密码,修改个人资料,上传头像)

    1. 项目分析 在设计一款软件时,在编写代码之前,应该先分析这个项目中需要处理哪些类型的数据!例如,本项目中需要处理的数据种类有:收藏,购物车,用户,收货地址,订单,商品,商品类别. 当确定了需要处理 ...

  7. 完整的前后端 实现上传头像、压缩头像

    本文是我在写上传头像功能后的一个详细的总结,用作以后可以回顾,可能较为繁琐,如果明白上传只想看压缩,可直接拉到文章后半部分. 文章目录 上传头像 上传头像准备工作 上传头像 上传头像路由配置 上传头像 ...

  8. ajax实现上传头像功能,网络编程Ajax实现注册并选择头像后上传功能

    在初次接触ajax后,我们做了一个crm训练的项目,大多数小组都有注册用户这一项,但是都忽略掉了一个功能,那就是,很多网站的注册是可以上传头像的,在这里我做了一个在已有的头像数组里选择图片上传作头像的 ...

  9. axios获取图片显示_vue中使用axios post上传头像/图片并实时显示到页面的方法

    在前端开发中,为了更好的用户体验,在头像上传时会先将图片显示到页面然后点击保存按钮 完成图片的上传成功 代码部分有参考他人的写法. html代码: 请上传图片 js代码: //实时显示该图片在页面 g ...

最新文章

  1. ios11,弹出层内的input框光标错位 键盘弹出时,输入信息,光标一直乱跳
  2. Linux中环境变量文件profile、bashrc、bash_profile之间的区别和联系
  3. python os方法-Python os.lchflags() 方法
  4. idc网站html源码,40个网页常用小代码
  5. C#使用Win32API获得窗口和控件的句柄
  6. 图片的base64编码实现以及网页上显示
  7. pata1015_ATA / PATA的完整形式是什么?
  8. Java语言与sikuli配合
  9. STM32_Systick学习及例程改写
  10. Git的使用教程(三)
  11. Google地图更新,更AI更贴心更节约时间,就是不敢来中国
  12. node.js(一)基础介绍
  13. 祝贺VMware中文网站正式发布!
  14. 苹果的 Safari 浏览器13岁了
  15. MindFusion教程:如何构建Java Swing中的区域图
  16. 下载徐小明新浪博客全部博文链接
  17. Internet网络通信协议
  18. CE教程:植物大战僵尸(金币数值修改)
  19. 【知识图谱】Louvain、LPA等5类经典社区发现算法 Python 实战
  20. spring5、springboot和springcloud的区别

热门文章

  1. 界下科技:移动支付成银行卡产业竞合焦点
  2. 【搬运合集】六款绿色的学习休闲软件,助你成为考研锦鲤!
  3. 互联网+三创赛商业计划书比赛“潜规则”,你知道多少?
  4. 对话框程序禁用系统的关闭按钮X
  5. 蒙特卡罗算法在游戏(围棋)AI中的应用
  6. arduino笔记27:mh-sensor-series + 土壤传感器
  7. R语言基础 | 方差分析(1):单因素方差分析
  8. kmeans和Dbscans将相邻的轮廓聚类
  9. 【无限互联】学员作品:面包旅行APP
  10. java 读excle poi3.8_POI 3.8读取2003与2007格式EXCEL(xls、xlsx)