主要是以js小脚本的方式来提交文件的,可能会有部分浏览器不支持的问题,不过这个方法也是很值得收藏的:
该方法及简单有是轻量级的js脚本,代码如下:
function UpladFile() {
var fileObj;
try {
<span style="color:#ff0000;">fileObj = document.getElementById("Myfile").files[0]; // 获取文件对象</span>
} catch (e) {
fileObj = document.getElementById("Myfile"); // 获取文件对象
}
//alert(fileObj);
var FileController = "/crowdsourcing/UpLoadAction!addProduct.action";
try {
// FormData 对象
var form = new FormData();
//var form = document.forms[0];
//var form = document.getElementById("uploadForm");
//alert(form);
} catch (e) {
alert(e);
}
form.append("upload", fileObj);
// XMLHttpRequest 对象
var xhr;
if(window.XMLHttpRequest) { // 非IE浏览器
xhr = new XMLHttpRequest();
if(xhr.overrideMimeType) {
xhr.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) { // IE浏览器
try{
xhr = new window.ActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
try{
xhr = new window.ActiveXObject("Microsoft.XMLHTTP");
}
catch(e) {
}
}
}
xhr.open("post", FileController, true);
xhr.onload = function () {
if(xhr.readyState == 4) {
alert("上传完成!");
document.getElementById("subimtFile").disabled="disabled";
} else {
alert("上传失败!");
}
};
xhr.send(form);
}
"var form = new FormData()"是有些浏览器不兼容的地方,其它的应该都没有问题,IE9(包含)之前的版本几乎都不支持<span style="color: rgb(255, 0, 0); ">FormData</span>对象。