相信做过上传的人都知道下面的这段代码
# <form id="upform" name="upform" action="upload.php" method="post" enctype="multipart/form-data">
# <input type="file" name="uploadfile" />
# <button type="submit" >upload</button>
# <form>
现在有如下的两个需求
1、要动态的控制enctype
2、要实现不同的浏览器支持
刚开始的实现如下
# var form=document.getElementById('upform');
# if(form.getAttribute('enctype')!='multipart/form-data'){
# form.setAttribute('enctype','multipart/form-data');
# }
经过测试,你就会发现,此实现只能支持FireFox,不能支持IE,到底是为什么呢?
研究发现,IE中不存在enctype,SO,下面的代码可以成功的实现上面的两个需求
# var form = document.getElementById('upform');
# if(form.encoding){
# form.setAttribute('encoding','multipart/form-data');
# }else{
# form.setAttribute('enctype','multipart/form-data');
# }
本文介绍了一种解决不同浏览器(enctype属性)兼容性问题的方法,通过动态设置表单的编码类型,确保文件上传功能在IE及Firefox等浏览器上正常工作。
1136

被折叠的 条评论
为什么被折叠?



