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可以避免直接去读取浏览器的文件地址