电子规范管理系统(2)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/details/78008917

(1)在这里

我们设计人员基本每个人都会拥有许许多多的电子规范,要么下载,要么来自同事,总之,我们不可能拥有那么多的纸质规范,必须有电子规范随身或放电脑中经常查阅,或偶尔查一个数据。 那么一个团队,是不是每个人都要这么做呢?每次有新的规范来,不断的充填这个规范库,别人也会不断的在设计团队群里问谁谁谁有某某规范吗? 其实,装一个规范管理系统就行了。功能挺简单,上传规范,查阅规范,最最重要的是要有有效版本管理功能,从系统设计上,采取的措施就是数据库中另外开一个有效版本库的数据表,每当我们查询规范的时候,也查阅到这个规范的最新版本(有效版本)号,放到后面提示出来,说明你查阅的这个电子规范现在是有效的,或已经是过期的了。但过期规范不是没有用的,是不用删除掉的,是需要保留下来对比用的。

这个系统是用golang语言开发的web应用,不需要部署,直接运行,团队成员都可以访问。也不要安装数据库服务。

我在考虑,为何全国没有一个统一的数据库在放最新有效版本的规范呢? 哪位大企业家支持一下,整合各大部委的规范资源,有效版本库统一对外发布。 这样,我这个系统的有效版本问题就解决了。 目前我们单位的做法是有专人核对有效版本,在oa系统上,但是只是针对水利系统啊。

 <!DOCTYPE html>
{{template "header"}}
<title>查阅规范、图集、计算书</title>
  <link rel="stylesheet" type="text/css" href="/static/fex-team-webuploader/css/webuploader.css">
  <script type="text/javascript" src="/static/fex-team-webuploader/dist/webuploader.js"></script>
  <link rel="stylesheet" type="text/css" href="/static/css/bootstrap-table.min.css"/>
  <script type="text/javascript" src="/static/js/jquery.tablesorter.min.js"></script>
  <script type="text/javascript" src="/static/js/bootstrap-table.min.js"></script>
  <script type="text/javascript" src="/static/js/bootstrap-table-zh-CN.min.js"></script>
  <script type="text/javascript" src="/static/js/bootstrap-table-export.min.js"></script>
  <link rel="stylesheet" type="text/css" href="/static/font-awesome-4.7.0/css/font-awesome.min.css"/>
  <script src="/static/js/tableExport.js"></script>
</head>

<body>
<div class="navbar navba-default navbar-fixed-top">
  <div class="container-fill">{{template "navbar" .}}</div>
</div>


<div class="text-center">
  <h1 > <i class="glyphicon glyphicon-chevron-right"></i> <i class="glyphicon glyphicon-minus"></i>
  </h1>
  <h1 >搜索 {{.Length}}个 文件</h1>
  <p class="large">
    工程师在设计过程中接触最多的是规范、图集和计算书。
  </p>
  <p class="large">
    规范与计算本应是配套的,因国情特殊,二者未结合,造成失误、人力浪费。
  </p>
  <p class="large">
  充分利用这个平台查阅和共享它们<a href="#" id="about"><i class="glyphicon glyphicon-question-sign"></i></a>。
  <a href="#" id="valid" title="管理有效版本库">《规范目录有效版本》</a>数据来自OA系统。</p>

  <div class="col-lg-4">
  </div>
  
  <div class="col-lg-4">
  <!-- <form >   form支持回车,但是不支持ajax,如何做到支持ajax?用ajaxform-->
    <div class="input-group">
      <input type="text" class="form-control" placeholder="请输入关键字或编号进行搜索" name="name" autocomplete="off" size="30" id="name" onkeypress="getKey();">
      <span class="input-group-btn">
        <button class="btn btn-default" type="button" id="search">
          <i class="glyphicon glyphicon-search"></i>
          Search!
        </button>
      </span>
    </div>
  </div>

    <div class="col-lg-12">
    <br>
    <!--SWF在初始化的时候指定,在后面将展示-->
    <div id="uploader" class="wu-example">
      <!--用来存放文件信息-->
      <div id="thelist" class="uploader-list"></div>
      <div id="picker"><i class="glyphicon glyphicon-plus-sign"></i>选择文件</div>
      <button id="ctlBtn" class="btn btn-default"><i class="glyphicon glyphicon-upload"></i></button>
    </div>
    <br>
  </div>
 </div>

  <div class="col-lg-12">
  <!-- 规范查询结果表 -->
  <toolbar id="btn_toolbar" class="toolbar">
    <div class="btn-group">
        <button type="button" id="addButton" class="btn btn-default" data-target="modal"><i class="fa fa-plus" aria-hidden="true"></i>添加</button>
        <button type="button" id="editorButton" class="btn btn-default" data-target="modal"><i class="fa fa-edit" aria-hidden="true"></i>编辑</button>
        <button type="button" id="deleteButton" class="btn btn-default" data-target="default"><i class="fa fa-trash" aria-hidden="true"></i>删除</button>
        <button type="button" id="importButton" class="btn btn-default" data-target="default"><i class="fa fa-trash" aria-hidden="true" title="导入规范数据"></i>导入</button>
    </div>
  </toolbar>
  <!-- data-query-params="queryParams" data-content-type="application/json"-->
  <div id="details" style="display:none">
    <h3>查询结果</h3>
  <!-- data-url="/admin/category/2" 没有了这个,当然table1表格无法支持刷新了!!!data-show-refresh="true"-->
    <table id="table"
          data-toggle="table"
          data-search="true"
          data-show-toggle="true"
          data-show-columns="true"
          data-toolbar="#btn_toolbar"
          data-sort-name="Grade"
          data-page-size="20"
          data-page-list="[15, 25, 50, All]"
          data-unique-id="id"
          data-pagination="true"
          data-side-pagination="client"
          data-click-to-select="false"
          data-halign="center"
          data-striped="true"
          >
      <thead>        
        <tr>
          <th data-width="10" data-checkbox="true"></th>
          <th data-formatter="index1">#</th>
          <th data-field="Number">编号</th>
          <th data-field="Title">名称</th>
          <th data-field="Route" data-formatter="setLink">链接</th>
          <th data-field="Uname">上传者</th>
          <th data-field="LiNumber" data-formatter="setLable">有效版本库</th>
        </tr>
      </thead>
    </table>
  </div>

  <!-- 有效版本库管理表 -->
  <toolbar id="btn_toolbar1" class="toolbar">
    <div class="btn-group">
        <button type="button" id="addButton1" class="btn btn-default" data-target="modal"><i class="fa fa-plus" aria-hidden="true"></i>添加</button>
        <button type="button" id="editorButton1" class="btn btn-default" data-target="modal"><i class="fa fa-edit" aria-hidden="true"></i>编辑</button>
        <button type="button" id="deleteButton1" class="btn btn-default" data-target="default"><i class="fa fa-trash" aria-hidden="true"></i>删除</button>
        <button type="button" id="importButton1" class="btn btn-default" data-target="default"><i class="fa fa-trash" aria-hidden="true" title="导入有效库数据"></i>导入</button>
    </div>
  </toolbar>
  <div id="details2" style="display:none">
    <h3>管理有效版本库</h3>
    <table id="table1"
          data-toggle="table"
          data-search="true"
          data-show-toggle="true"
          data-show-columns="true"
          data-toolbar="#btn_toolbar1"
          data-sort-name=""
          data-page-size="20"
          data-page-list="[15, 25, 50, All]"
          data-unique-id="id"
          data-pagination="true"
          data-side-pagination="client"
          data-click-to-select="false"
          data-halign="center"
          data-striped="true"
          >
      <thead>        
        <tr>
          <th data-width="10" data-checkbox="true"></th>
          <th data-formatter="index1">#</th>
          <th data-field="Category" data-sortable="true">行业</th>
          <th data-field="Number" data-sortable="true">编号</th>
          <th data-field="Year">年份</th>
          <th data-field="action" data-formatter="actionFormatter">完整编号</th>
          <th data-field="Title">名称</th>
        </tr>
      </thead>
    </table>
  </div>
    
  </div>

<div id="footer">
  <div class="col-lg-12">
    <br>
    <hr/>
  </div>

  <div class="col-lg-6">
    <h4>Copyright © 2016~2017 EngineerCMS</h4>
    <p>
      网站由 <i class="user icon"></i>
      <a target="_blank" href="https://github.com/3xxx">@3xxx</a>
      建设,并由
      <a target="_blank" href="http://golang.org">golang</a>
      和
      <a target="_blank" href="http://beego.me">beego</a>
      提供动力。
    </p>

    <p>
      请给 <i class="glyphicon glyphicon-envelope"></i>
      <a class="email" href="mailto:qin.xc@gpdiwe.com">我</a>
      发送反馈信息或提交
      <i class="tasks icon"></i>
      <a target="_blank" href="https://github.com/3xxx/engineercms/issues">应用问题</a>
      。
    </p>
  </div>
  <div class="col-lg-6">
    <h4 >更多项目</h4>
    <div >
      <p>
        <a href="https://github.com/3xxx/hydrows">水利供水管线设计工具</a>
      </p>
      <p>
        <a href="https://github.com/3xxx/merit">成果与价值管理系统</a>
      </p>
      <p>
        <a href="https://github.com/3xxx/engineercms">工程师知识管理系统</a>
      </p>
    </div>
  </div>
</div>


<!-- 使用说明 -->
  <div class="form-horizontal">
    <div class="modal fade" id="modal">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">
              <span aria-hidden="true">×</span>
            </button>
            <h3 class="modal-title">使用规则</h3>
            <label></label>
          </div>
          <div class="modal-body">
            <div class="modal-body-content">
              <div class="form-group must">
                <label class="col-sm-3 control-label">一、查询:</label>
                <label class="col-sm-8">1、显示全部规范,输入allstandard;2、显示全部图集,输入allatlas;3、显示全部计算书,输入allcompute</label>
              </div>
              <div class="form-group must">
                <label class="col-sm-3 control-label">二、电子规范命名:</label>
                <label class="col-sm-8">GB 50007-2011建筑地基基础设计规范.pdf</label>
                <label class="col-sm-8">SL 677-2014水工混凝土施工规范.pdf</label>
              </div>
              <div class="form-group must">
                <label class="col-sm-3 control-label">三、电子图集命名:</label>
                <label class="col-sm-8">07MS101市政给水管道工程-消火栓、附属构筑物、架空钢管、防水套管.pdf</label>
              </div>
              <div class="form-group must">
                <label class="col-sm-3 control-label">四、计算书命名:</label>
                <label class="col-sm-8">波浪爬高.xlsx</label>
              </div>
            </div>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
          </div>
        </div>
      </div>
    </div>
  </div>

<!-- 修改规范 -->
<div class="container form-horizontal">
  <div class="modal fade" id="editorstandardmodal">
    <div class="modal-dialog">
      <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">
              <span aria-hidden="true">×</span>
            </button>
            <h3 class="modal-title">修改</h3>
          </div>
          <div class="modal-body">
            <div class="form-group must">
              <label class="col-sm-3 control-label">编号</label>
              <div class="col-sm-7">
                <input type="text" class="form-control" id="number1"></div>
            </div>
            <div class="form-group must">
              <label class="col-sm-3 control-label">名称</label>
              <div class="col-sm-7">
                <input type="text" class="form-control" id="title1"></div>
            </div>
            <div class="form-group must">
              <label class="col-sm-3 control-label">链接</label>
              <div class="col-sm-7">
                <input type="text" class="form-control" id="route1"></div>
            </div>
            <div class="form-group must">
              <label class="col-sm-3 control-label">上传者</label>
              <div class="col-sm-7">
                <input type="tel" class="form-control" id="uname1"></div>
            </div>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
            <button type="button" class="btn btn-primary" onclick="updatestandard()">修改</button>
          </div>
        </div>
    </div>
  </div>
</div>

<!-- 批量导入规范数据 -->
<div class="container form-horizontal">
  <div class="modal fade" id="importstandardmodal">
    <div class="modal-dialog">
      <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">
              <span aria-hidden="true">×</span>
            </button>
            <h3 class="modal-title">导入规范数据表</h3>
          </div>
          <div class="modal-body">
              <!-- <div class="form-group"> -->
                <form method="post" action="/importexcel" enctype="multipart/form-data">
                  <label>
                    <input type="file" name="excel" id="excel" class="btn btn-default"/>
                  </label>
                  <button type="submit" class="btn btn-default" onclick="import()">导入规范数据</button>
                </form>
              <!-- </div> -->
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
          </div>
        </div>
    </div>
  </div>
</div>

<!-- 修改有效版本库 -->
<div class="container form-horizontal">
  <div class="modal fade" id="modalTable1">
    <div class="modal-dialog">
      <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">
              <span aria-hidden="true">×</span>
            </button>
            <h3 class="modal-title">修改</h3>
          </div>
          <div class="modal-body">
            <div class="form-group must">
              <label class="col-sm-3 control-label">名称</label>
              <div class="col-sm-7">
                <input type="text" class="form-control" id="title1"></div>
            </div>
            <div class="form-group must">
              <label class="col-sm-3 control-label">内容</label>
              <div class="col-sm-7">
                <input type="text" class="form-control" id="content1"></div>
            </div>
            <div class="form-group must">
              <label class="col-sm-3 control-label">备注</label>
              <div class="col-sm-7">
                <input type="tel" class="form-control" id="about1"></div>
            </div>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
            <button type="button" class="btn btn-primary" onclick="update()">修改</button>
          </div>
        </div>
    </div>
  </div>
</div>

<!-- 批量导入有效版本库 -->
<div class="container form-horizontal">
  <div class="modal fade" id="importvalidmodal">
    <div class="modal-dialog">
      <div class="modal-content">
          <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">
              <span aria-hidden="true">×</span>
            </button>
            <h3 class="modal-title">导入有效版本数据</h3>
          </div>
          <div class="modal-body">
            <form method="post" action="/importlibrary" enctype="multipart/form-data">
              <label>
                <input type="file" name="excel" id="excel" class="btn btn-default"/>
              </label>
              <button type="submit" class="btn btn-default" onclick="import()">导入有效库</button>
            </form>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
          </div>
        </div>
    </div>
  </div>
</div>

<script>
  function actionFormatter(value, row, index) {
                return row.Category+' '+row.Number+'-'+row.Year
              }
  function index1(value,row,index){
  // alert( "Data Loaded: " + index );
    return index+1
  }

  function localDateFormatter(value) {
    return moment(value, 'YYYY-MM-DD').format('YYYY-MM-DD');
  }
  function setLink(value,row,index){
    return '<a href="'+row.Route+'" title="下载" target="_blank"><i class="fa fa-paperclip"></i></a>';
  }
  function setLable(value,row,index){
    return row.LiNumber+row.LibraryTitle
  }

// <button class="btn btn-primary" id="export">导出excel</button>
$(document).ready(function(){
    // 显示规范电子文件命名规则
    $("#about").click(function() {
      $('#modal').modal({
        show:true,
        backdrop:'static'
      });
    })

    //显示和管理有效版本库
    $("#valid").click(function() {
      $("#details2").show();
      $('#table1').bootstrapTable('refresh', {url:'/valid'});
    })

  $("#search").click(function(){//这里应该用button的id来区分按钮的哪一个,因为本页有好几个button
    var title = $('#name').val();
    if (title.length>=2)
        {
          $.ajax({
          type:"post",//这里是否一定要用post???
          url:"/search",
          data: {name: $("#name").val()},
          success:function(data,status){//数据提交成功时返回数据
            $("#details").show();
            //追加数据
            $('#table').bootstrapTable('append', data);
            $('#table').bootstrapTable('scrollTo', 'bottom');

            }       
          });

        }else{
          alert("请输入2个以上字符");
        }

    });
  
  });

  //规范表格增删改
  $(document).ready(function() {
    //添加规范
    $("#addButton").click(function() {
        $('#modalTable').modal({
        show:true,
        backdrop:'static'
        });
    })
    //导入规范数据
    $("#importButton").click(function() {
        $('#importstandardmodal').modal({
        show:true,
        backdrop:'static'
        });
    })

    $("#editorButton").click(function() {
      var selectRow=$('#table').bootstrapTable('getSelections');
      if (selectRow.length<1){
        alert("请先勾选!");
        return;
      }
      if (selectRow.length>1){
      alert("请不要勾选一个以上!");
      return;
      }
      $("input#cid").remove();
      var th1="<input id='cid' type='hidden' name='cid' value='" +selectRow[0].Id+"'/>"
      $(".modal-body").append(th1);//这里是否要换名字$("p").remove();
      $("#number1").val(selectRow[0].Number);
      $("#title1").val(selectRow[0].Title);
      $("#route1").val(selectRow[0].Route);
      $("#uname1").val(selectRow[0].Uname);
        $('#editorstandardmodal').modal({
        show:true,
        backdrop:'static'
        });
    })

    $("#deleteButton").click(function() {
      var selectRow=$('#table').bootstrapTable('getSelections');
      if (selectRow.length<=0) {
        alert("请先勾选!");
        return false;
      }

      if(confirm("确定删除吗?一旦删除将无法恢复!")){
        var title=$.map(selectRow,function(row){
          return row.Title;
        })
        var ids="";
        for(var i=0;i<selectRow.length;i++){
          if(i==0){
            ids=selectRow[i].Id;
          }else{
            ids=ids+","+selectRow[i].Id;
          }  
        }

        var ids1=$.map(selectRow,function(row){
        return row.id;
        })

        $.ajax({
          type:"post",
          url:"/deletestandard",
          data: {ids:ids},
          success:function(data,status){
            alert("删除“"+data+"”成功!(status:"+status+".)");
            //删除已选数据
            $('#table').bootstrapTable('remove',{
              field:'Title',
              values:title
            });
          }
        });
      }
    })
  })  

  //有效版本库表格增删改
  $(document).ready(function() {
    $("#addButton1").click(function() {
        $('#modalTable').modal({
        show:true,
        backdrop:'static'
        });
    })

    $("#importButton1").click(function() {
        $('#importvalidmodal').modal({
        show:true,
        backdrop:'static'
        });
    })

    $("#editorButton1").click(function() {
      var selectRow=$('#table1').bootstrapTable('getSelections');
      if (selectRow.length<1){
        alert("请先勾选!");
        return;
      }
      if (selectRow.length>1){
      alert("请不要勾选一个以上!");
      return;
      }
      $("input#cid").remove();
      var th1="<input id='cid' type='hidden' name='cid' value='" +selectRow[0].Id+"'/>"
      $(".modal-body").append(th1);//这里是否要换名字$("p").remove();
      $("#Iptitle1").val(selectRow[0].Title);
      $("#StartIp1").val(selectRow[0].StartIp);
      $("#EndIp1").val(selectRow[0].EndIp);
      $("#Iprole1").val(selectRow[0].Iprole);
        $('#editorvalidmodal').modal({
        show:true,
        backdrop:'static'
        });
    })

    $("#deleteButton1").click(function() {
      var selectRow=$('#table1').bootstrapTable('getSelections');
      if (selectRow.length<=0) {
        alert("请先勾选!");
        return false;
      }

      if(confirm("确定删除吗?一旦删除将无法恢复!")){
        var title=$.map(selectRow,function(row){
          return row.Title;
        })
        var ids="";
        for(var i=0;i<selectRow.length;i++){
          if(i==0){
            ids=selectRow[i].Id;
          }else{
            ids=ids+","+selectRow[i].Id;
          }  
        }

        var ids1=$.map(selectRow,function(row){
        return row.id;
        })

        $.ajax({
          type:"post",
          url:"/deletevalid",
          data: {ids:ids},
          success:function(data,status){
            alert("删除“"+data+"”成功!(status:"+status+".)");
            //删除已选数据
            $('#table1').bootstrapTable('remove',{
              field:'Title',
              values:title
            });
          }
        });
      } 
      
    })
  })

  function updatestandard(){
    // var radio =$("input[type='radio']:checked").val();
    var number1 = $('#number1').val();
    var title1 = $('#title1').val();
    var route1 = $('#route1').val();
    var uname1 = $('#uname1').val();
    var cid = $('#cid').val();
    // $('#myModal').on('hide.bs.modal', function () {  
    if (number1)
      {  
        $.ajax({
          type:"post",
          url:"/updatestandard",
          data: {cid:cid,number:number1,title:title1,route:route1,uname:uname1},
          success:function(data,status){
            alert("添加“"+data+"”成功!(status:"+status+".)");
          }
        });  
      } 
      // $(function(){$('#myModal').modal('hide')});
        $('#editorstandardmodal').modal('hide');
        $('#table').bootstrapTable('refresh', {url:'/getstandard'});
        // "/category/modifyfrm?cid="+cid
        // window.location.reload();//刷新页面
  }
// 文件上传
jQuery(function() {
    var $ = jQuery,
        $list = $('#thelist'),
        $btn = $('#ctlBtn'),
        state = 'pending',
        uploader;
        uploader = WebUploader.create({
        // 不压缩image
        resize: false,
        // swf文件路径
        swf: '/static/fex-team-webuploader/dist/Uploader.swf',
        // 文件接收服务端。
        server: '/standard_one_addbaidu',
        // 选择文件的按钮。可选。
        // 内部根据当前运行是创建,可能是input元素,也可能是flash.
        pick: '#picker'
    });

    // 当有文件添加进来的时候
    uploader.on( 'fileQueued', function( file ) {
        $list.append( '<div id="' + file.id + '" class="item">' +
            '<h4 class="info">' + file.name + '</h4>' +
            '<p class="state">等待上传...</p>' +
        '</div>' );
    });


    // 文件上传过程中创建进度条实时显示。
    uploader.on( 'uploadProgress', function( file, percentage ) {
        var $li = $( '#'+file.id ),
            $percent = $li.find('.progress .progress-bar');
        // 避免重复创建
        if ( !$percent.length ) {
            $percent = $('<div class="progress progress-striped active">' +
              '<div class="progress-bar" role="progressbar" style="width: 0%">' +
              '</div>' +
            '</div>').appendTo( $li ).find('.progress-bar');
        }

        $li.find('p.state').text('上传中');

        $percent.css( 'width', percentage * 100 + '%' );
    });

    uploader.on( 'uploadSuccess', function( file ) {
        $( '#'+file.id ).find('p.state').text('已上传');
    });

    uploader.on( 'uploadError', function( file ) {
        $( '#'+file.id ).find('p.state').text('上传出错');
    });

    uploader.on( 'uploadComplete', function( file ) {
        $( '#'+file.id ).find('.progress').fadeOut();
    });

    uploader.on( 'all', function( type ) {
        if ( type === 'startUpload' ) {
            state = 'uploading';
        } else if ( type === 'stopUpload' ) {
            state = 'paused';
        } else if ( type === 'uploadFinished' ) {
            state = 'done';
        }

        if ( state === 'uploading' ) {
            $btn.text('暂停上传');
        } else {
            $btn.text('开始上传');
        }
    });

    $btn.on( 'click', function() {
        if ( state === 'uploading' ) {
            uploader.stop();
        } else {
            uploader.upload();
        }
    });
});

function getKey(){
  var title = $('#name').val();
  if(event.keyCode==13){ 
    if (title.length>=2){
          $.ajax({
          type:"post",//这里是否一定要用post???
          url:"/search",
          data: {name: $("#name").val()},
          success:function(data,status){//数据提交成功时返回数据
            $("#details").show();
            //追加数据
            $('#table').bootstrapTable('append', data);
            $('#table').bootstrapTable('scrollTo', 'bottom');
            }       
          });
        }else{
          alert("请输入2个以上字符");
        }
  }   
}

</script>



</body>
</html> 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

伽利略远程监控系统完全安装指南

7月初,外媒用臭名昭著形容意大利的网络军火商公司hacking team及其被黑事件,黑吃黑的黑客将该公司rcs系统的安装程序、源代码和邮件打包供所有人下载,更...

35410
来自专栏coding

yii2实战之初见端倪PHP框架大PK安装yii2项目初始化配置服务小结

1425
来自专栏企鹅号快讯

无线局域网负载均衡有哪些分类和形式?

介绍无线局域网负载均衡分类以及形式,无线局域网负载均衡设置主要从无线局域网负载均衡分类和负载不均衡形式两点介绍路由器的异同,轻轻松松就能完成设置,没什么难的。赶...

2156
来自专栏進无尽的文章

基础篇-iOS后台运行以及相关

对于APP的前后台运行情况的了解,有助于我们在实际开发中规避一些问题,以及采取稳妥的方法处理和解决问题,是很必须的。

3861
来自专栏iKcamp

iKcamp|基于Koa2搭建Node.js实战(含视频)☞ 解析JSON

视频地址:https://www.cctalk.com/v/15114923886141 JSON 数据 我颠倒了整个世界,只为摆正你的倒影。 前面的文章中,...

4059
来自专栏北京马哥教育

推荐!国外程序员整理的系统管理员资源大全(一)

备份软件 Amanda -客户端-服务器模型备份工具 Bacula - 另一个客户端-服务器模型备份工具 Backupninja -轻量级,可扩展的元数据备份系...

48610
来自专栏腾讯云安全的专栏

你熟悉的Android Root 方式有哪些?|附演示视频

2545
来自专栏数据和云

122Architecture 全面解读 - 第一篇 全局解析+ADG+IM模块

Oracle自发布12.1之后,就一直声称要全面转云,在之后的三四年里,一直杳无音信,大家都在猜测,Oracle又在憋什么大招,果然,2017阳春三月,大招来了...

3729
来自专栏FreeBuf

正确姿势:如何调戏蹭网者

这篇文章本来是知乎回答的一个问题,但是由于本人五行缺勤奋,所以一直没写(其实是忘了=。=),下面是我的一个实验,如何通过squid调戏那些蹭网的人。没什么技术含...

2418
来自专栏工科狗和生物喵

Python爬虫小白入门(一)

开篇语 本篇文章适用人群 >有一点点语法基础,至少知道Python这个东西,如果有其他方面语言的基础那也凑合 >会一点点Linux系统的操作,最好是ubunt...

48411

扫码关注云+社区

领取腾讯云代金券