⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 upload.js

📁 以前做的一个j2ee的项目
💻 JS
字号:
function setReg(){
//alert("ffff")
	var hkey_path = "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Internet Explorer\\ActiveX Compatibility\\{00000566-0000-0010-8000-00AA006D2EA4}\\Compatibility Flags";
	try{
		var RegWsh = new ActiveXObject("WScript.Shell")
		RegWsh.RegWrite(hkey_path,00000000,"REG_DWORD")
	}catch(e){
           alert("XXGZDA-100:请在IE设置ActiveX WScript.Shell可用!!! " );
           return ;
	}


}


function uploadfile(no,path){
      //setReg();
      caseno=no;
      aryFiles.push(path);

      BeginSendFiles();
      //hsave.disabled=true;
      return statue;
}












  var xmlhttp ;
   var ado_stream ; var mFileName, mPartStart, mPartID, mPartEnd ;
   var SendCount ;
   var BlockSize ;
   var Breaked ;
   var aryFiles ;
   BlockSize = 1024*100;//每次发送字节数
   Breaked = false ;
   aryFiles = new Array() ; // 开始发送文件
   var caseno="";
   var statue=0;
function BeginSendFiles() {
    div_message.innerHTML="";
    // initAryFiles() ;
    if(aryFiles.length<=0){
      alert("XXGZDA-101:请选择需要上传的文件!");
      return;
    }
    SendFile(aryFiles.pop()) ;
} // 构造待发送文件的数组

 function initAryFiles() {
  //aryFiles.push("c:\\aaa.zip");
  //aryFiles.push("c:\\bbb.exe") ;
  //c:\\aaa.zip c:\\bbb.exe本地文件

  //aryFiles.push(document.all.file.value);

  aryFiles.reverse() ;//文件名
  //if(aryFiles[0].length<=0){
  //     alert("文件名为空,不能上传");
  //}
}
function SendFile(vFullPath) { // 空文件则不执行上传
  if (!vFullPath) { return ; }
  Breaked = false ;
  div_message.innerHTML ="" ;

  try{

     ado_stream = new ActiveXObject("ADODB.Stream"); // 读取文件的流
  }
  catch(e){
    alert("XXGZDA-102:紧接着的对话框将询问你是否允许Active Shell,你要选择确定,然后关闭IE,重新操作即可!");
    setReg();
    return;

  }

 try{
  ado_stream.Type = 1;
  ado_stream.Open();
  ado_stream.LoadFromFile(vFullPath); // 读取文件
 }catch(e){
    alert("XXGZDA-110:你要上传的文件被打开了,请关闭后再操作!"+e);   
    return;
 } 

  

  ado_stream.position = 0 ;
     BlockSize=ado_stream.size;
  SendCount = Math.ceil(ado_stream.size/BlockSize) ; // 如果有余数则多发送一次
  //alert(SendCount) ;
  var reg = /\b\w+.\w+$/gi
  mFileName =reg.exec(vFullPath) ;
  alert("XXGZDA-103:传送文件"+mFileName);
  mPartStart = true ;
  mPartID = 1 ;
  mPartEnd =false ;
  SendData() ;
 }

 function SendData() {
    if (SendCount > 0) {
         var dom = new ActiveXObject("msxml2.DOMDocument"); // 发送的xml文件
         dom.async = false;
         dom.resolveExternals = false; // 构造xml文件头
        var node =dom.createProcessingInstruction("xml","version='1.0'");
        dom.appendChild(node) ;
        node = null ; // 构造root节点
        var root =dom.createElement("root");
        dom.appendChild(root) ;
        dom.documentElement.setAttribute("xmlns:dt","urn:schemas-microsoft-com:datatypes"); // 构造保存二进制数据的节点updata
        node =dom.createElement("upData") ;
        node.dataType = "bin.base64" ; //bin。base64编码
        var att = dom.createAttribute("FileName") ; // 文件名属性
        att.value = mFileName ;
        node.setAttributeNode(att) ; att = null ;
        var att = dom.createAttribute("PartStart") ; // 分段开始标记
        att.value =mPartStart ;
        node.setAttributeNode(att) ;
        att = null ;
        var att =dom.createAttribute("PartID") ; // 分段序号
        att.value = mPartID ;
        node.setAttributeNode(att) ;
        att = null ;
        var att = dom.createAttribute("PartEnd") ; // 分段结束标记
        att.value = mPartEnd ;
        node.setAttributeNode(att) ;
        att = null ;
        root.appendChild(node) ;
        node.nodeTypedValue = ado_stream.Read(BlockSize); // 节点数据从stream读取,固定长度
        node = null ; SendCount -= 1 ;
        xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");

        var url="insert.jsp?casenum="+caseno;

        xmlhttp.open("POST",url, false);//http://www.xxx.com/xxx/xxx.asp 为web路径上的文件
        xmlhttp.onreadystatechange=CallBack ;
xmlhttp.setRequestHeader("CONTENT-TYPE","multipart/form-data");

        xmlhttp.send(dom);
        mPartStart = false ;
         xmlhttp = null ;
       }
    else { ado_stream.Close(); ado_stream = null ; }
}
function CallBack(){ // 上传成功

    if(xmlhttp.readystate == 4) { // 检查是否中断上传
        if(Breaked) {
            return ;
        }
        if (SendCount > 0) {
            mPartID += 1 ; //
            div_message.innerHTML += ("<br>" + xmlhttp.ResponseText) ;
            var p = Math.floor((mPartID/(Math.ceil(ado_stream.size/BlockSize) + 1)) *100) ; // 计算进度百分比
            ShowBar(p) ;
            var t = setTimeout("SendData();", 1) ;
        } else { // 传送完文件 //
            //div_message.innerHTML += mFileName +"传送完毕!<br>" ; // 继续传下一文件
            div_message.innerHTML += "传送完毕!" ; // 继续传下一文件
            ShowBar(0) ;
            statue=1;
            var cFile = aryFiles.pop();
            SendFile(cFile) ;
        }
    }
}

function ShowBar(per) { // 进度条
   processbar.innerHTML= "<table width='100%' border=0 cellpadding='0' cellspacing='0'><tr><td bgcolor='#6699FF'><input type=button style='width:" + per + "% ; border:0px; background:#005599; color:#FFFFFF'value=" + per + "%> </td></tr></table>" ;
}
function initfile(){
  processbar.innerHTML="";
div_message.innerHTML="";
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -