ajax文件上传

本文详细介绍了如何使用HTML5的Ajax技术实现文件上传,包括iframe模拟Ajax文件上传效果,使用formData发送数据,将二进制对象转换为浏览器资源,通过form表单发送图片到服务器,以及如何展示上传进度条。此外,还讨论了HTML5的大文件切割上传策略,利用Blob的slice方法分块上传文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章首发于qdgithub.com阅读体验更佳

iframe模拟Ajax文件上传效果

分析:

1:捕捉表单提交的动作

2:创建一个iframe

3:把表单的 target修改 指向 该iframe

4:去掉这个iframe

<div id="progress"></div>
<form action="up.php" method="post" enctype="multipart/form-data" onsubmit="return ajaxup();">
	<input type="file" name="pic">
	<input type="submit" value="提交">
</form>
<script>
	function ajaxup() {
     
     
		var ifname = 'up' + Math.random();
		$('<iframe name="' + ifname + '" width="0" height="0" frameBorder="0"></iframe>').appendTo($('body'));
		$('form:first').attr('target', ifname);
		$('#progress').html('<img src="./loading.gif" />');
	}
</script>
sleep(3);

if(empty($_FILES)) {
    exit('no file');
}

$msg = $_FILES['pic']['error']==0 ? 'succ' : 'fail';

echo "<script>parent.document.getElementById('progress').innerHTML = '$msg'</script>";

formData发送数据

formData "表单数据"对象,这是在html5中新增的一个Api。
他能以表单对象做参数,自动的把表单的数据打包.
当ajax发送数据时,发送些formData,达到发送表单内各数据项的目的。

// 02-testpost.php
print_r($_POST);
<form id="tform">
	用户名:<input type="text" name="username"><br>
	年 龄:<input type="text" name="age"><br>
	email:<input type="text" name="email"><br>
	性 别:<input type="text" name="gender"><br>
	<input type="button" value="ajax发送" onclick="send();">
</form>
<div id="debug"></div>
<script type="text/javascript">
	function send() {
     
     
		var fm = document.getElementById('tform');
		var fd = new FormData(fm);

		var xhr = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值