ajax--html5上传文件file api +FormData



formData html5新增的api
以表单对象做参数自动打包

<form id="fm">
		<input type="text" name="user">
		<input type="text" name="pw">
		<input type="text" name="email">
		
		<input type="button" value="提交" οnclick="upup()" >
	</form>

	<div id="cosa"></div>

表单id在创建formdata对象时需要

formdata对象(fd)放进send里

得到的是数组

<script type="text/javascript">

		function upup(){
			// 把表单用formdata打包
			var fm = document.getElementById('fm');
			var fd = new FormData(fm);

			var xhr=new XMLHttpRequest();	
			xhr.open('POST','3post.php',true);

			xhr.onreadystatechange = function(){
				// action的打印post数组,把收到的放进div
				if(this.readyState == 4){
					document.getElementById('cosa').innerHTML=this.responseText;
				}
			}

			// 发送
			xhr.send(fd);

			
		}

	</script>


效果:点击button 填写的东西 出现在div里(就是那个数组)


然后把send那行注释掉

在函数里加上

<span style="white-space:pre">			</span>var fd2 = new FormData();
			fd2.append('username','bibioteca');
			fd2.append('age','34');
			xhr.send(fd2);

这是空的formdata在js里添加key and value

append(key,value)





上传文件

fileAPI

<input type="file" name="pic" οnchange="upload()">

选择好图片时就触发了,能看到图片的很多参数

function upload(){
			// html5的新属性
			var pic=document.getElementsByName('pic')[0].files;
			// console.log(pic);console里看到filelist
			// console.log(pic[0]);file
			pic = pic[0];
			// alert(pic.name);


			var fd = new FormData();
			// 创建formdata 
			// 把pic整体放到 file里(表单数据)
			fd.append('file',pic);

			var xhr=new XMLHttpRequest();	
			xhr.open('POST','8file.php',true);

			xhr.onreadystatechange = function(){
				// action的打印post数组,把收到的放进div
				if(this.readyState == 4){
					document.getElementById('cosa').innerHTML=this.responseText;
				}
			}

			// 发送
			xhr.send(fd);

		}

console filelist




8file.php

<?php
// 因为是上传文件,所以打印files
print_r($_FILES);

?>

效果图




上传的文件直接显示在页面里

// 把二进制对象的直接显示在页面上 创建img src
 			var img= document.createElement('img');
 			img.src = window.URL.createObjectURL(pic);
 			document.getElementsByTagName('body')[0].appendChild(img);




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值