ajax发送FormData,后台接收
1 前端用formdata()的方式提交
//创建一个新的canvasvar canvas = document.createElement("canvas");var content = document.getElementById('Home-Container');var aLink =document.createElement('a');// aLink.setAttribute('download', uuid);var w = content.offsetWidth ;var h = content.offsetHeight;
//可以按照自己的需求,对context的参数修改,translate指的是偏移量
// var context = canvas.getContext("2d");
// context.translate(0,0);var context = canvas.getContext("2d");context.scale(2, 2);html2canvas(content, {width:w,height:h,windowWidth: document.body.scrollWidth,windowHeight: canvas.scrollHeight}).then(function(canvas) {//document.body.appendChild(canvas);//canvas转换成url,然后利用a标签的download属性,直接下载,绕过上传服务器再下载//aLink.setAttribute('href', canvas.toDataURL());let src = canvas.toDataURL("image/png")//这里转成的是base64的地址,直接用到img标签的src是可以显示图片的var fd = new FormData();function dataURItoBlob(dataURI) {//图片转成Buffervar byteString = atob(dataURI.split(',')[1]);var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];var ab = new ArrayBuffer(byteString.length);var ia = new Uint8Array(ab);for (var i = 0; i < byteString.length; i++) {ia[i] = byteString.charCodeAt(i);}return new Blob([ab], {type: mimeString});}var blob = dataURItoBlob(src);fd.append('source_from','webpage_upload')//在formdata加入需要的参数fd.append('file',blob)let config = {//添加请求头headers: { 'Content-Type':'multipart/form-data'}};// 获取form所有数据const instance=axios.create({responseType: 'blob'})instance.post(url.System.createReport+"?TIME="+window.TIME0+"&RYZ="+window.RYZ0+"&ZD="+window.ZD0+"&AD="+window.AD0+"&PH="+window.PH0+"&SW="+window.SW0+"&NODENAME="+window.nodeName+"&YLS="+window.YLS0+"&DL="+window.DL0+"&DY="+window.DY0+"&DEPTH="+window.DEPTH0+"&LAT="+window.LAT0+"&LON="+window.LON0+"&YHHYDW="+window.YHHYDW0,fd,config).then(res => {const content = res.dataconst blob = new Blob([content])const fileName = '下载的文件.docx'if ('download' in document.createElement('a')) {//非ie下载const elink = document.createElement('a')elink.download = fileNameelink.style.display = 'none'elink.href = URL.createObjectURL(blob)document.body.appendChild(elink)elink.click()URL.revokeObjectURL(elink.href)document.body.removeChild(elink)} else {//ie10+下载navigator.msSaveBlob(blob, fileName)}})aLink.click();});
2 后台获取文件
MultipartHttpServletRequest multipartRequest=(MultipartHttpServletRequest) request;InputStream file1 =multipartRequest.getFile("file").getInputStream();
ajax发送FormData,后台接收相关推荐
- java后台解析json并保存到数据库_[Java教程]ajax 发送json 后台接收 遍历保存进数据库...
[Java教程]ajax 发送json 后台接收 遍历保存进数据库 0 2017-09-25 15:00:23 前台怎么拿参数的我就不管了我也不会 反正用这个ajax没错 ajax 代码 一定要写 ...
- Form组件,用ajax发送到后台需要的注意事项
form通过ajax发送到后台, 后台无法直接返回跳转页面,因为,ajax无法接受跳转命令 后台验证完成后,错误信息因为不是常规Python的字典格式,所以需要引入ErrorDict views文件 ...
- ajax参数传递与后台接收【转存】
ajax参数传递与后台接收 Servlet中读取http参数的方法 Enumeration getParameterNames() 返回一个 String 对象的枚举,包含在该请求中包含的参数的名称 ...
- ajax传递数组后台接收不到值的问题
背景: JQGrid需要进行批量删除操作传给后台的是数组,结果后台接收不到值. 后台语言:java 原因: ajax传递参数时,traditional 默认为false,JQuery会深度序列化参数对 ...
- Ajax发送formdata数据,SpringMVC后台处理
撸了今年阿里.头条和美团的面试,我有一个重要发现.......>>> 前端js: var submit_data = new FormData(); var name = $(&qu ...
- ajax post请求发送数组后台接收
www.yanand.me 加上traditional: true, 转载于:https://www.cnblogs.com/terry0376/p/5620057.html
- 使用JQuery Ajax发送FormData数据
视图页面的代码 1.先创建一个FormData:var form = new FormData(); 2.然后进行数据的封装:form.append("封装数据的名字",数据),例 ...
- iphone 使用AJAX发送FormData文件,踩坑
事呢,就是这么个事.iphone如果你发送的formdata数据中文件有空,在数据表现为file.size==0;此时试用iphone是会发送失败的:无奈只好做个判断了: 1. 问题分析 /* * 为 ...
- 用jsonserve和axios做交互_详解解决使用axios发送json后台接收不到的问题
问题描述 按照axios官网例子发起请求传递json,后台接受到的数据为空,一直卡在options阶段. 尝试的方法 开始以为是接口有问题,使用postman测试下,一切正常,百思不得其解,看了好多i ...
最新文章
- js获取浏览器当前时间
- 【转】如何上传本地音乐作为百度空间背景音乐
- PhpStorm快捷键
- 【Linux】一步一步学Linux——chown命令(112)
- leetcode 316. Remove Duplicate Letters | 316. 去除重复字母(单调栈解法)
- Spring中BeanPostProcessor 执行过程
- 删除.svn文件夹方法(转)
- php怎么异步执行,php中异步执行的四种方式
- 最新小额借贷系统完整源码+附教程文档
- 路由交换实验一——CISCO路由器的基本配置
- 模糊逻辑基本原理与编程
- OpenCv识别多条形码
- 「圆桌」无人驾驶何时来?| 甲子引力
- MYSQL数据库(九)- 修改数据表名称、列名称
- java 写文件filewriter_使用FileReader和FileWriter读取写入文件内容
- 硬盘知识大全(含主板、BIOS)
- 递归算法计算Legendre多项式
- visio电路图怎么连线_还在用visio画电路图?不看后悔!
- 《矩阵理论》大萌课程笔记 - 线性空间与子空间
- meterpreter使用详解
热门文章
- Thymeleaf常用的th标签属性
- python 文本转语音播放失败_win下使用PyQt的Phonon播放失败
- CTF密码学题目初探(二)
- vue跳转下个页面关闭当前页面_vue页面跳转 vue生命周期
- MySQL Connectors组件8.0.12及之前版本的Connector/J子组件存在安全漏洞及其相关性分析
- 山东工商学院计算机2军训,山东工商学院新生军训项目内容和军训时间安排表...
- CMOS工艺的反相器版图
- MicroBlaze:Xilinx官方软核学习与一些实验测试
- python pandas 将结果输出到excel的sheet页——pd.ExcelWriter
- Python基础知识入门(二)