效果图:

Jsp代码(样式自己调):

<img id="HeadImg" src="" data-bd-imgshare-binded="1" style="height: 120px;width: 120px;">
<input type="file" id="SelectTheFile" name="SelectTheFile" hidden>
<a id="SelectThe" href="javascript:;">选择文件</a>

Js代码:

var ImageReader=new FileReader();/// FileReader接口,用于读取文件//回调函数onLoad异步ImageReader.onload = function (evt) {$("#HeadImg").attr("src", evt.target.result);//将数据结果赋值给imges的src};//正则表达式过滤上传的图片类型regexImageFilter = /^(?:image\/bmp|image\/png|image\/jpeg|image\/jpg)$/i;$("#SelectTheFile").change(function () {var imgFile= $("#SelectTheFile").prop('files')[0];//prop添加属性名称console.log(imgFile);if(imgFile!=undefined){var Type = imgFile.type;//加载img标签 ,判断是否是图片类型if (!regexImageFilter.test(Type)) {alert("选择的不是图片类型!")$("#SelectTheFile").val("");}//readAsDataURL()方法可以获取API异步读取的文件数据,另存为数据URL,将该URL绑定到img标签的src属性上,就可以实现图片上传的预览效果ImageReader.readAsDataURL(imgFile);}});

用ajax对表单进行序列化并上传,会出现报以下错


原来不仅仅是form的enctype="multipart/form-data"问题,普通的form表单进行序列化只是只能传递一般的参数,上传文件的文件流是无法被序列化并传递的。所以我们需要用FormData的对象。
参考:https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/FormData
代码如下:

             //对from表单创建FormData对象var oData = new FormData(document.forms.namedItem("UserForm" ));  var oReq = new XMLHttpRequest();  oReq.open( "POST", "路径" , true );  oReq.onload = function(data) {  //接收后台传递的参数alert(oReq.responseText);};  oReq.send(oData);

后台代码如下:

public String ModifyTheUser(@RequestParam(value="input的name",required=true)MultipartFile myfile) throws IOException{if (myfile.getSize() > 0) {//路径String path = “上传的路径”;System.out.println(path);//获取文件原名String fullName=myfile.getOriginalFilename();//获取扩展名称String ext=fullName.substring(fullName.lastIndexOf("."));//拼接文件保存的名称String fileName=System.nanoTime()+ext;//保存文件FileUtils.writeByteArrayToFile(new File(path, fileName), myfile.getBytes());}return “”;}

SSM框架上传文件并不刷新页面,并预览图片相关推荐

  1. 在win10本地开发springboot项目能上传图片,并能通过URL直接从浏览器访问,但是部署到服务器上后能上传文件,但是通过浏览器无法访问图片

    在win10本地开发springboot项目能上传图片,并能通过URL直接从浏览器访问,但是部署到服务器上后能上传文件,但是通过浏览器无法访问图片 1.首先springboot项目在Window和Li ...

  2. ajax实现文件的上传(局部刷新页面,文件上传)

    一.前端jsp页面代码: //注意,这里的form表单,只去id名 <form id="localAjax">文件:<input type="file& ...

  3. Android开发笔记(一百一十)使用http框架上传文件

    HTTP上传 与文件下载相比,文件上传的场合不是很多,通常用于上传用户头像.朋友圈发布图片/视频动态等等,而且上传文件需要服务器配合,所以容易被app开发者忽略.就上传的形式来说,app一般采用htt ...

  4. smartupload 上传文件时 把页面编码改成gbk 解决乱码

    快来java1234 吧 smartupload 上传文件时,经常会发生因为把表单设置为 enctype="multipart/form-data"而出现的中文乱码问题,本人头疼好 ...

  5. springboot界面上传文件和在页面上显示文件

    做一个简单的上传图片和显示图片的测试 首先要有web-starter的包,Springboot中内置了DispatcherServlet也配置好了MultipartResolver. 关于上传文件的特 ...

  6. ssm + maven 上传文件(图片)

    添加Pom.xml依赖: <!--上传--> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> ...

  7. Laravel框架上传文件到OSS

    1,在项目的根目录composer.json文件中加入 "aliyuncs/oss-sdk-php": "*": 2,在项目的根目录中运行以下命令 compos ...

  8. SSM根据上传文件获取视频文件时长

    一.编写前端上传文件代码 <html> <head><title>file upload</title> </head> <body& ...

  9. 【谷歌浏览器】上传文件卡死、页面另存为文件卡死解决

    1.确定原因及解决方法: 1.1 原因: 最终是输入法的问题.网上找了一圈都没有找到,最后在贴吧找到,不得不说还是贴吧大神多..... 1.2 贴吧中介绍的方法: 2. 实操发现并不能解决问题. 开始 ...

最新文章

  1. TensorFlow算子融合
  2. pwd python 安装 模块_Python自动化办公之邮件定时发送
  3. 理解标准输出流方法:WriteLine和Write
  4. [CareerCup] 9.5 Permutations 全排列
  5. 详解Vue.use使用与原理
  6. linux版本wannacry,Wannacry勒索软件解决方案
  7. P4130,jzoj1214-[NOI2007]项链工厂【线段树】
  8. 壕无人性!618战报发布:天猫、京东累计下单金额近万亿
  9. 优秀PSD电商促销BANNER模板|垂直化内容电商页面设计,需要注意哪些问题?
  10. HDOJ1203 I NEED A OFFER!
  11. JavaWeb之路径问题
  12. 中兴B860AV2.1-T_3.0_s905l3-b_uwe5621_线刷固件(附短接点示意图)
  13. iphone 装 android系统,iPhone上安装Android系统详细步骤。
  14. Oracle查询锁表
  15. 获取UI控件位置信息
  16. 《一舞醉红尘,一笑歌岁月》
  17. 从零点一开始机器学习之晦涩难懂的各种概念
  18. 华三HCL模拟器添加虚拟网卡连接外网、VMware虚拟机、实体机方法
  19. 高通SDX12:USB2.0 端口枚举失败问题分析及解决方案
  20. asp毕业设计——基于asp+access的中学网站设计与实现(毕业论文+程序源码)——中学网站

热门文章

  1. 3DMAX换贴图插件
  2. 小程序自定制从顶部弹出的picker,模拟贝壳找房
  3. 线下门店如何运营私域流量
  4. 一基一石,代餐的成长与内卷
  5. RFID固定资产管理--智能化资产管理--RFID资产管理--新导智能
  6. Excel如何为介于区间的数值设置背景颜色?
  7. 愿你学会优雅地控制自己的情绪
  8. 居于mtk芯片安卓车机系统具体流程
  9. acwing算法基础课——差分
  10. 用于Transformer的6种注意力的数学原理和代码实现