使用FormData异步提交文件上传

2 篇文章 0 订阅
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!doctype html>
<html>

	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
		<title>出错了</title>
		<link rel="stylesheet" href="<%=path %>/page/css/luntan.css">
		<script type="text/javascript" src="<%=path%>/page/js/jquery-2.1.4.min.js"></script>
	<script>
	function show1(){
		
		var form = $("#form1")[0]; //jquery对象转DOM对象
		
		//把form1的表单,赋值给FormData对象,构造参数必须是DOM对象 FormData仅支持高版本浏览器
		var formData = new FormData(form);
		$.ajax({
	        type: 'POST',
	        url: '/tesla-demo-manager-app/hello/uploadFile.upload',
			data : formData,
			contentType: false,   //必须设置为false
			processData: false,   //必须设置为false
			dataType : 'json',
			success : function(result) {
				console.log(result)
			},
			error : function() {
				alert("系统异常");
			}
		});
		
		
	}
	
	function show2(){
		
		var rydm = $("#div1").find("input[name=rydm]").val();
		var rymc = $("#div1").find("input[name=rymc]").val();
		var file = $("#div1").find("input[name=file]")[0].files[0]
		
		//声明一个表单对象,并对表单赋值,FormData仅支持高版本浏览器
		var formData = new FormData();
		formData.append("rydm",rydm);
		formData.append("rymc",rymc);
		formData.append("file",file);
		$.ajax({
	        type: 'POST',
	        url: '/tesla-demo-manager-app/hello/uploadFile.upload',
			data : formData,
			contentType: false,   //必须设置为false
			processData: false,   //必须设置为false
			dataType : 'json',
			success : function(result) {
				console.log(result)
			},
			error : function() {
				alert("系统异常");
			}
		});
	}
	
	
	function showTesla(){
		$.ajax({
			type: 'POST',
	        url: 'http://127.0.0.1:8080/tesla-demo-manager-app/hello/helloworld.json',
	        data : {userName:'zhangsan',date:'2017-01-01'},
			dataType : 'json',
			success : function(result) {
				alert(result.reply.result)
				console.log(result);
			},
			error : function() {
				alert("系统异常");
			}
		});
	}
	
</script>
	</head>

	<body>
	
		<button onclick="showTesla()">tesla-ajaxSubmit-test</button><br>
		
		<!-- 带form的上传   在执行完ajax方法后,页面会再次提交表单 ,所以加上onsubmit="return false;"-->
		<form id="form1" onsubmit="return false;">
			<input type="hidden" name="rydm" value="0000048722" ><br>
			<input type="hidden" name="rymc" value="冯刚" > <br>
			<input type="file" name="file" ><br>
			<button onclick="show1()">button1</button><br>
		</form>
		
		<!-- 不带form的上传 -->
		<div id="div1">
			<input type="hidden" name="rydm" value="0000048722" ><br> 
			<input type="hidden" name="rymc" value="冯刚" ><br> 
			<input type="file" name="file"><br>
			<button onclick="show2()">button2</button>
		</div>
		
		<a href="/tesla-demo-manager-app/hello/downLoadFile.download">下载</a>

	</body>
</html>

jquery.form.js 上传文件

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!doctype html>
<html>

	<head>
		<meta charset="UTF-8">
		<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
		<title>出错了</title>
		<link rel="stylesheet" href="<%=path %>/page/css/luntan.css">
		<script type="text/javascript" src="<%=path%>/page/js/jquery-2.1.4.min.js"></script>
		<script type="text/javascript" src="<%=path%>/page/js/jquery.form.js"></script>
		
	<script type="text/javascript">
    $(function () {
        $("#btnsubmit").click(function () {
            $("#form1").ajaxSubmit({
                success: function (data) {
                    alert(data.msg);
                },
                error: function (error) { alert(error); },
                url: '/siri/test.do', /*设置post提交到的页面*/
                type: "post", /*设置表单以post方法提交*/
                dataType: "json" /*设置返回值类型为文本*/
            });
        });
    });
</script>
	</head>

	<body>
		
		<form id="form1">
			<input type="hidden" name="rydm" value="0000048722" ><br>
			<input type="hidden" name="rymc" value="冯刚" > <br>
	        <input type="file" name="file" />
	        <input type="button" id="btnsubmit" value=" 上 传 " />
    	</form>

	</body>
</html>

@RequestMapping("test")
@ResponseBody
public Map<String, Object> test(MultipartFile file,String rydm,String rymc) {
    Map<String, Object> map = new HashMap<>();
    map.put("msg", "rydm="+rydm+",rymc="+rymc+",filename=" + file.getOriginalFilename());
    return map;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值