.net 动态设置form的enctype属性
此属性具有下面三个值可取:
application/x-www-form-urlencoded: 窗体数据被编码为名称/值对。这是标准的编码格式。
multipart/form-data: 窗体数据被编码为一条消息,页上的每个控件对应消息中的一个部分,上传附件用到 text/plain: 窗体数据以纯文本形式进行编码,其中不含任何控件或格式字符。
application/x-www-form-urlencoded是默认值;multipart/form-data上传附件需要用到,此时以二进制传输数据,服务器端是可以获得input的值的,只是它的值是二进制数据。
用js可以改变此属性:
if(theForm .getAttribute('enctype')!='multipart/form-data'){
theForm .setAttribute('enctype','multipart/form-data');
}
上面是标准办法但IE不兼容。下面的办法兼容IE:
if (!theForm) {
theForm = document.aspnetForm;
}
$(theForm).submit(function() {
if (theForm.encoding) {
theForm.setAttribute('encoding', 'multipart/form-data');
} else {
theForm.setAttribute('enctype', 'multipart/form-data');
}
theForm.submit();
});