ajax传输,后台同步,后台json传输,文件,文件夹复制删除,查询,新建,在线压缩

7 篇文章 0 订阅
4 篇文章 0 订阅

先贴出来 ajax代码

  function outto()
    {
        $("#showxz").hide()
        if ($("#ids").attr("value") == "") {
            alert('未选中任何数据');
            return;
        }
        var a = $("#ids").attr("value");
        var t = a.split(',');
       //都完成了才可以显示下载文件名
        if (confirm("您要操作的数据条数为 " + t.length + ",确认后继续?") == true) {
            $("#ssj").val('......系统正在压缩中请稍后.....');
            setTimeout(function () { 
            $.ajax({
                type: "GET",
                url: "/xxhz_admin/filemore/",
                //temp:预防360缓存内容,保存iis的sessionID
                data: { ids: a, temp: Math.random() },
                async: true,//异步之后不影响本页其他功能
                dataType: "json",
                success: function (data) {
                    if (data.name == '')
                    {
                        $("#ssj").val('......压缩完成.....');
                        $("#showxz").show();
                    }
                   // alert(data.ret);
                    //alert(data);
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    //alert(XMLHttpRequest.status);
                    //alert(XMLHttpRequest.readyState);
                    //alert(textStatus);
                }
            });
            }, 1000);
        }

    }

页面中

<input type="text" id="ssj" name="ssj"  style="width:200px;" />
     <div id="showxz" style="display:none; float:right; width:400px;">
         <a href="/temprar/1.rar" target="_blank">【 下载文件1 】</a> 
     </div>


后台代码,包含,目录操作和文件的操作,还有压缩,注意WinRAR程序所在的位置

  public JsonResult filemore(string ids)
        {
            string ttt_rpath = Server.MapPath("/temprar/yuan1");


          // string s_rpath="D:\\Web\\weixin\\upload\\";
            List<string> str = new List<string>();
            string nstr = "";
            string s_rpath = "E:\\CASE\\文化表彰投票\\修改\\weixin\\upload\\";
            string errstr = "",ret="0";//空就是没有错误,
            List<string> ids_array = ids.Split(',').ToList<string>();

            var list = from a in base_db.SB_XMGL
                       where (ids_array).Contains(a.ID.ToString())
                       select a;
            var res = new JsonResult();  
           
           //1查找文件是否在

            foreach (var item in list)
            {
         
                nstr = s_rpath+"\\"+item.SB_PC_ID+"\\"+item.SB_order+"\\"+item.SB_NAME + ".doc";
                str.Add(nstr);
                 if (!string.IsNullOrEmpty(item.IMG1))
                    {
                        string[] ab = item.IMG1.Split(',');
                        for (int i = 0; i < ab.Length; i++)
                        {
                            nstr = s_rpath + "\\" + item.SB_PC_ID + "\\" + item.SB_order + "\\Protocol\\" + ab[i];
                            str.Add(nstr);
                        }
                    }
                 if (!string.IsNullOrEmpty(item.IMG2))
                 {
                     string[] ab = item.IMG2.Split(',');
                     for (int i = 0; i < ab.Length; i++)
                     {
                         nstr = s_rpath + "\\" + item.SB_PC_ID + "\\" + item.SB_order + "\\Implementation\\" + ab[i];
                         str.Add(nstr);
                     }
                 }
                 if (!string.IsNullOrEmpty(item.IMG3))
                 {
                     string[] ab = item.IMG3.Split(',');
                     for (int i = 0; i < ab.Length; i++)
                     {
                         nstr = s_rpath + "\\" + item.SB_PC_ID + "\\" + item.SB_order + "\\Outcome\\" + ab[i];
                         str.Add(nstr);
                     }
                 }
                 if (!string.IsNullOrEmpty(item.IMG4))
                 {
                     string[] ab = item.IMG4.Split(',');
                     for (int i = 0; i < ab.Length; i++)
                     {
                         nstr = s_rpath + "\\" + item.SB_PC_ID + "\\" + item.SB_order + "\\Supplement\\" + ab[i];
                         str.Add(nstr);
                     }
                 }
            }
            foreach (string item in str)
            {
                if(!System.IO.File.Exists(item))
                {
                    errstr = "丢失文件:" + item;
                }
                
            }

            if (errstr == "")
            {
                string savePath = ttt_rpath+"";//获得当前的文件目录
                //删目录下所有文件
                DirectoryInfo dir = new DirectoryInfo(savePath);
                FileSystemInfo[] fileinfo = dir.GetFileSystemInfos();  //返回目录中所有文件和子目录
                foreach (FileSystemInfo i in fileinfo)
                {
                    if (i is DirectoryInfo)            //判断是否文件夹
                    {
                        DirectoryInfo subdir = new DirectoryInfo(i.FullName);
                        subdir.Delete(true);          //删除子目录和文件
                    }
                    else
                    {
                        System.IO.File.Delete(i.FullName);      //删除指定文件
                    }
                }


                foreach (var item in list)
                {

                    if (!Directory.Exists(savePath))
                    {
                        Directory.CreateDirectory(savePath);
                    }
                    nstr = s_rpath + "\\" + item.SB_PC_ID + "\\" + item.SB_order + "\\" + item.SB_NAME + ".doc";
                    System.IO.File.Copy(nstr, savePath + "\\" + item.SB_NAME + ".doc", true);

                    if (!string.IsNullOrEmpty(item.IMG1))
                    {
                        string[] ab = item.IMG1.Split(',');
                        if (!Directory.Exists(savePath + "\\" + item.SB_order + "\\Protocol\\"))
                        {
                            Directory.CreateDirectory(savePath + "\\" + item.SB_order + "\\Protocol\\");
                        }
                        for (int i = 0; i < ab.Length; i++)
                        {
                            nstr = s_rpath + "\\" + item.SB_PC_ID + "\\" + item.SB_order + "\\Protocol\\" + ab[i];
                           
                            System.IO.File.Copy(nstr, savePath + "\\" +  item.SB_order + "\\Protocol\\" + ab[i], true);
                        }
                    }
                    if (!string.IsNullOrEmpty(item.IMG2))
                    {
                        string[] ab = item.IMG2.Split(',');
                        if (!Directory.Exists(savePath + "\\" + item.SB_order + "\\Implementation\\"))
                        {
                            Directory.CreateDirectory(savePath + "\\" + item.SB_order + "\\Implementation\\");
                        }
                        for (int i = 0; i < ab.Length; i++)
                        {
                            
                            nstr = s_rpath + "\\" + item.SB_PC_ID + "\\" + item.SB_order + "\\Implementation\\" + ab[i];
                            System.IO.File.Copy(nstr, savePath + "\\" + item.SB_order + "\\Implementation\\" + ab[i], true);
                        }
                    }
                    if (!string.IsNullOrEmpty(item.IMG3))
                    {
                        string[] ab = item.IMG3.Split(',');
                        if (!Directory.Exists(savePath + "\\" + item.SB_order + "\\Outcome\\"))
                        {
                            Directory.CreateDirectory(savePath + "\\" + item.SB_order + "\\Outcome\\");
                        }
                        for (int i = 0; i < ab.Length; i++)
                        {
                            nstr = s_rpath + "\\" + item.SB_PC_ID + "\\" + item.SB_order + "\\Outcome\\" + ab[i];
                            System.IO.File.Copy(nstr, savePath + "\\" + item.SB_order + "\\Outcome\\" + ab[i], true);
                        }
                    }
                    if (!string.IsNullOrEmpty(item.IMG4))
                    {
                        string[] ab = item.IMG4.Split(',');
                        if (!Directory.Exists(savePath + "\\" + item.SB_order + "\\Supplement\\"))
                        {
                            Directory.CreateDirectory(savePath + "\\" + item.SB_order + "\\Supplement\\");
                        }
                        for (int i = 0; i < ab.Length; i++)
                        {
                            nstr = s_rpath + "\\" + item.SB_PC_ID + "\\" + item.SB_order + "\\Supplement\\" + ab[i];
                            System.IO.File.Copy(nstr, savePath + "\\" +  item.SB_order + "\\Supplement\\" + ab[i], true);
                        }
                    }
                }

             
            
            }

            //2复制文件
            //3压缩文件 string ttt_rpath = Server.MapPath("/temprar/yuan1");
            //开始压缩
            if (errstr == "")
            {
                ProcessStartInfo startinfo = new ProcessStartInfo(); ;
                Process process = new Process();  
                string rarName = "1.rar"; //压缩后文件名  
                string path = ttt_rpath; //待压缩打包文件夹  
                string rarPath = Server.MapPath("/temprar");  //压缩后存放文件夹  
                string rarexe = @"E:\CASE\文化表彰投票\修改\winrar360\WinRAR.exe";  //WinRAR安装位置  
                string cmd = string.Format("a {0} {1} -r",
                                rarName,
                                path);
                startinfo.FileName = rarexe;
                startinfo.Arguments = cmd;                          //设置命令参数  
                startinfo.WindowStyle = ProcessWindowStyle.Hidden;  //隐藏 WinRAR 窗口  
                startinfo.WorkingDirectory = rarPath;
                process.StartInfo = startinfo;
                process.Start();
                process.WaitForExit(); //无限期等待进程 winrar.exe 退出  
                if (process.HasExited)
                {
                    ret = "1";//代表压缩成功
                }  
            }
            
            
            var datae = 
                //new filemore();
           //var q = from a in ty
           //        select new
            new
                   {
                       ret = ret,
                       name = errstr
                   };


            res.Data = datae;
            res.JsonRequestBehavior = JsonRequestBehavior.AllowGet;//允许使用GET方式获取,否则用GET获取是会报错。  
            return res;
        }  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值