js上传

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可以避免直接去读取浏览器的文件地址
原文地址:https://www.cnblogs.com/sguozeng/p/9230468.html