<!--  数据和文件一次性提交  -->
<form class="form_meren" id="mainForm" name="mainForm" action="${ctx}/shahescenicinfo/insertShaheScenicinfo.do" method="post" enctype="multipart/form-data"> <input class="form-control " id="aname" name="aname" type="text">
<input type="file" id="otherfiles">
<input type="file" id="otherfiles2">
       <button type="button" onclick="sbutripform()" >保存</button>
</form>
//验证结束后执行保存
function sbutripform(){
//form的id就是mainForm
var mainstr=formToJsonObject(mainForm);
//from表单对象 转json
mainstr=JsonToStr(mainstr);
mainstr=mainstr.replace("%", "%25");
var manstr = mainstr.toString();
var formData = new FormData();
formData.append("file1",document.getElementById("otherfiles").files[0]);
formData.append("file2",document.getElementById("otherfiles2").files[0]);
formData.append("jsonStr",manstr);
$.ajax({
url:url,
type:'POST',
dataType:'json',
data:formData,
cache: false,//上传文件无需缓存
processData: false,//用于对data参数进行序列化处理 这里必须false
contentType: false, //必须
success:function(xclyid){
window.top.customAlertTip("", "保存成功", "warning");
},
error:function (error){
window.top.customAlertTip("", "保存失败", "warning");
}
}); }
@RequestMapping(value="/updateallareainfo.do", method={RequestMethod.GET,RequestMethod.POST})
@ResponseBody
public String updateallareainfo(HttpServletRequest request,
@RequestParam(value="file1",required=false)MultipartFile file1,
@RequestParam(value="file2",required=false)MultipartFile file2,
String jsonStr) {
//把数据从json 转换为 实体类
YbsjAreaInfo ybsjAreaInfo = JSON.parseObject(jsonStr,YbsjAreaInfo.class);
try {
log.info("当前访问的action方法:updateallareainfo") ;
// uploads 文件夹位置
String rootPath = request.getSession().getServletContext().getRealPath(PropertyManager.getProperty("voiceupload"));
// uploads 文件夹2位置
String imgPath = request.getSession().getServletContext().getRealPath(PropertyManager.getProperty("filesavepath // 原始名称
String newFileName1 = "";
String newFileName2 = "";        if (file1!=null) {
String originalFileName1 = file1.getOriginalFilename();//旧的文件名(用户上传的文件名称)
//新的文件名
newFileName1 = UUIDUtil.getuuid() + originalFileName1.substring(originalFileName1.lastIndexOf("."));
File newFile = new File(rootPath + File.separator + newFileName1);
// 判断目标文件所在目录是否存在
if( !newFile.getParentFile().exists()) {
// 如果目标文件所在的目录不存在,则创建父目录
newFile.getParentFile().mkdirs();
}
//存入
file1.transferTo(newFile);
ybsjAreaInfo.setMapUrl("/"+filesavepath+newFileName1);
}
if (file2!=null) {
String originalFileName2 = file2.getOriginalFilename();
newFileName2 = UUIDUtil.getuuid() + originalFileName2.substring(originalFileName2.lastIndexOf("."));
File newFile2 = new File(imgPath + File.separator + newFileName2);
if( !newFile2.getParentFile().exists()) {
// 如果目标文件所在的目录不存在,则创建父目录
newFile2.getParentFile().mkdirs();
}
file2.transferTo(newFile2);
ybsjAreaInfo.setAlogo("/"+filesavepath+newFileName2); } } catch (IllegalStateException | IOException e) {
e.printStackTrace();
}
int updateallareainfo = ybsjAreaInfoService.updateallareainfo(ybsjAreaInfo); String shaheScenicinfoid="{\"id\":\""+updateallareainfo+"\"}";
return shaheScenicinfoid;
}

以上是 单个文件 接收的方法

如果用到一个Input 上传多个文件

后台用

@RequestParam("files") MultipartFile[] files 

接收就好了

form 表单提交数据和文件(fromdata的使用方法)的更多相关文章

  1. Linux curl 模拟form表单提交信息和文件

    Linux curl 模拟form表单提交信息和文件   curl是一个命令行方式下传输数据的开源传输工具,支持多种协议:FTP.HTTP.HTTPS.IMAP.POP3.TELNET等,功能超级强大 ...

  2. thinkPHP5.0使用form表单提交数据和删除文章,不用TP的提示页面,使用弹出提示信息

    form表单提交数据和删除文章时,TP的默认信息提示页面的看起来不是很好看,想要实现弹窗提示怎么做呢? 前端:可以使用前端的一个知识--iframe,iframe元素会创建包含另外一个文档的内联框架: ...

  3. js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题

    js模拟form表单提交数据, js模拟a标签点击跳转,避开使用window.open引起来的浏览器阻止问题 js模拟form表单提交数据源码: /** * js模拟form表单提交 * @param ...

  4. springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据

    springboot框架中集成thymeleaf引擎,使用form表单提交数据,debug结果后台获取不到数据 表单html: <form class="form-horizontal ...

  5. Java后台使用httpclient入门HttpPost请求(form表单提交,File文件上传和传输Json数据)

    一.HttpClient 简介 HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 ...

  6. js_ajax模拟form表单提交_多文件上传_支持单个删除

    需求场景: 用一个input type="file"按钮上传多张图片,可多次上传,可单独删除,最后使用ajax模拟form表单提交功能提交到指定方法中: 问题:由于只有一个file ...

  7. form表单提交数据的数据格式

    form表单提交的数据格式默认是 enctype="application/x-www-form-urlencoded"这样将input框的数据与input框的name属性以键值对 ...

  8. Form表单提交数据的几种方式

    一.submit提交 在form标签中添加Action(提交的地址)和method(post),且有一个submit按钮(<input type='submit'>)就可以进行数据的提交, ...

  9. 关于AJAX与form表单提交数据的格式

    一 form表单传输文件的格式: 只有三种: multipart/form-data 一般用于传输文件,图片文件或者其他的. 那么其中我们默认的是application/x-www-form-urle ...

随机推荐

  1. Bat 批处理启动和停止Oracle 服务

    实际情况 * 不想开机自启动oracle服务,因为Windows 没有固态硬盘本身启动就很慢了,然后也不想自己手动的方式去启东oracle 服务 解决方案 *1启动 ``` @echo off ech ...

  2. python实现tcp代理

    1.代理流程图 2.实现代码 #! usr/bin/python2 import sys import socket import thread #handle local buffer def re ...

  3. Unity 宽度适配 NGUI

    这是很久之前写的一篇Note,现在移到Blog上来,可能有些参数,NGUI插件等等不和现在版本相同.不过大概的思路应该不会错. ps: 可能有部分內容是摘抄自其他作者,没办法考证了,如有请务必联系我. ...

  4. javamail "535 5.7.3 Authentication unsuccessful" 问题排查

    有一家odm的服务器用Javamail发邮件的时候报错  Authentication unsuccessful  其他的有些又是正常的 网上查了一下解决方法如下 JavaMailSenderImpl ...

  5. 注解Annotation原理详解及其应用示例

    一.什么是注解 注解也叫元数据,例如我们常见的@Override和@Deprecated,注解是JDK1.5版本开始引入的一个特性,用于对代码进行说明,可以对包.类.接口.字段.方法参数.局部变量等进 ...

  6. with语句和空语句

    with语句能够为一组语句创建缺省的对象,在一组语句中,任何不指定对象的属性引用都将被认为是缺省对象. 语法如下: with(object){ statements; } <body> & ...

  7. 网络编程基础之TCP编程学习(一)

    网络编程基础了解 socket套接字 socket是一种通讯机制,它包含一整套的调用接口和数据结构的定义,他给应用程序提供了使用如TCP/UDP等网络通讯的手段. linux中的网络编程通过socke ...

  8. 【问题】bzip2 --version 2>&1 < /dev/null

    https://unix.stackexchange.com/questions/230887/what-does-dev-null-mean https://stackoverflow.com/qu ...

  9. 学习使用Django一 安装虚拟环境

    以上环境可以先在虚拟机上操作,熟练之后再正式机操作!!! 再学习Djangj之前,先讲个小概念,虚拟环境     记得刚刚开始学习Python的时候,往往是用的那个包,就Cmd 上 直接输入“pip ...

  10. jade过滤器

    以上语法基本讲完了jade的语法,然后在jade里面并不仅仅局限于使用jade语法,同样可以使用其他的插件语言,这种机制在jade里面称为filter,在jade里面加入过滤器用冒号 markdown ...