js上传目前有很多的方法,有控件,有自定义的等等
下面为在项目中用到的一个自定义的上传,不依赖任何的控件
///上传触发事件
function StartLoadCAD() {
var fileupload = document.getElementById('filePro').files;
for (var i = 0; i < fileupload.length; i++) {
var formdata = new FormData();
formdata.append('files', fileupload[i]);
//formdata.append('files', fileupload);
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("post", '../Myupload/upload.ashx?method=formDataUpload');
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
//alert('上传成功');
//uploadToFile(fileupload[0].name); //开始临时上传
}
}
xmlHttp.send(formdata);
if (fileupload[i].name.indexOf(".shp") >= 0&&fileupload[i].name.indexOf(".xml")==-1) {
uploadToFile(fileupload[i].name); //开始临时上传
}
if (fileupload[i].name.indexOf(".dwg") >= 0) {
uploadToFile(fileupload[i].name);
}
}
//uploadToFile(fileupload[0].name); //开始临时上传
}
///临时上传
function uploadToFile(filename) {
$.ajax({
type: "get",
url: "Home.aspx",
data: { "getCADpt": "getCADpt", "filename": filename },
error: function (ex) {
alert(ex);
},
success: function (data) {
if (data == "-1") {
alert("叠加文件格式不对");
$("#fileurl").val("")
return;
}
if (data == "0") {
alert("选择文件为空");
return;
}
//叠加
$("#overCAD").fadeOut(500);
AddCAD(data); //获取CAD数据
}
});
}
其中,当执行到临时上传这里的时候,其实文件已经在上一步操作中把文件上传到了指定的位置
文件上传,一般浏览器都会对客户端的路径进行加密安全处理,所以采用fileupload可以避免直接去读取浏览器的文件地址