利用iframe模拟AJAX文件上传

本文介绍了两种常见的网页文件上传方式:flash和form的input控件。对比了这两种方式的特点及应用场景,包括上传进度、多文件异步上传等特性。

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

目前的技术背景下,从网页上传文件常用的有两种方式:flash和form的input控件。

一般我们希望上传文件应该有这样几个功能:
1. 读取文件大小
2. 上传进度
3. 上传成功与否
4. 多文件同时异步上传

一、利用flash可以实现以上的文件上传机制,但是有个缺陷,不能支持https上传。另外js和flash的交互比较复杂,除了文件名之外,因为安全因素js还不能从flash的文件控件中获取其他文件信息(文件大小,绝对路径)。

二、利用form的input控件可以得到浏览器的原生支持,由于提交form需要刷新整个页面,为了达到异步上传的效果,可以在一个隐藏的iframe里提交这个form。

用input控件不能读取文件大小,不能知道上传进度,但是可以支持https,而且不用担心用户浏览器没有安装flash。

判断上传成功与否可以利用iframe的onload事件;实现多个文件同时上传可以利用多个form对应多个iframe;文件大小判断可以由server实现并返回结果。

另外有些页面的UI需要美化上传按钮,可以利用一个透明度为o的input遮盖在此按钮上面,并利用css的clip属性将input控件裁成跟按钮一样大就可以了。如果按钮上需要响应事件,那就要把input控件上的事件传过去。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值