动态设置上传文件的enctype
动态设置上传文件的enctype
<fm id="up" name="up" action="upfileile.php" method="post" enctype="multipart/fm-data">
<input type="file" name="upfileilefile[]" />
<input type="file" name="upfileilefile[]" />
<button type="submit" >upfileile</button>
</fm>
学过js的人可能试图用js检查并控制enctype得类型
fm=document.getElementById('up');
if(fm.getAttribute('enctype')!='multipart/fm-data'){
fm.setAttribute('enctype','multipart/fm-data');
}以上代码完全按照W3C格式
FF下运行良好 但是IE不兼容,其它浏览器可以不兼容,就IE不能不兼容
在看YUI类库时得到启发
IE中fm没有enctype属性,只有encoding属性,那么以上代码改写为:
fm=document.getElementById('up');
if(fm.getAttribute('enctype')!='multipart/fm-data'&&fm.encoding!='multipart/fm-data')
if(fm.encoding){
fm.setAttribute('encoding','multipart/fm-data');
}else{
fm.setAttribute('enctype','multipart/fm-data');
}
}
//最外成if判断可以去掉 因为你是要设置它可以上传文件这样你可以试试这样得代码了
<script type="text/javascript">
function upfileile(fm){
if(fm.encoding){
fm.setAttribute('encoding','multipart/fm-data');
}else{
fm.setAttribute('enctype','multipart/fm-data');
}
fm.setAttribute('method',post');
if(!fm.getAttribue('action')){
fm.setAttribute('action',location.href);
}
fm.submit();
}
</script>
<fm action="upfileile.php" onsubmit="try{upfileile(this);}catch(e){};return false;">
<input type="file" name="upfileilefile[]" />
<input type="file" name="upfileilefile[]" />
<button type="submit" >upfileile</button>
</fm>
补充:Php教程,Php入门