朗明朔 發表於 2019-12-6 17:34:00

angular.js的 的上传功能实现---FileUploader

<p>步骤:</p>
<p>1、</p>
<pre class="hljs dts"><code>var uploader= new FileUploader({
<span class="hljs-symbol">      url:需要上传的地址,
<span class="hljs-symbol">      autoUpload: 是否将文件添加到队列后自动上传(Boolean),
<span class="hljs-symbol">      headers: 与文件一起发送的头文件,只适合支持html5的浏览器,根据实际情况配置
      });
</span></span></span></code></pre>
<p><code>&nbsp;</code></p>
<p>2、</p>
<pre class="hljs php"><code> uploader.filters.push({
      name: 自定义
      fn: <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(item) {
            <span class="hljs-comment">//item就是你上传的文件这里面你就可以写你需要筛选的条件,下面举一个例子,筛选文件的大小
            <span class="hljs-comment">//$scope.maxSize是我指令传过来的参数
            <span class="hljs-keyword">var fileSizeValid = file.size &lt;= $scope.maxSize; <span class="hljs-comment">//文件大小限制;
            <span class="hljs-keyword">return fileSizeValid ;
      }
    })<br>3、调用FileUploader促发的不同函数<br></span></span></span></span></span></span></span></span></code></pre>
<pre class="hljs actionscript"><code> <span class="hljs-comment">//添加一个文件失败后触发
   uploader.onWhenAddingFileFailed = <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(item , filter, options) {};
   
   <span class="hljs-comment">//    向队列中添加一个单独的文件后触发
    uploader.onAfterAddingFile = <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(fileItem) {};
   
    <span class="hljs-comment">//在所有被拖拽或被选中的文件添加到队列后触发。
    uploader.onAfterAddingAll = <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(addedFileItems) {};
   
    <span class="hljs-comment">//在上传一个文件对象之前触发
    uploader.onBeforeUploadItem = <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(item) {};
   
    <span class="hljs-comment">//文件正在上传中触发
    uploader.onProgressItem = <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(fileItem, progress) {};
   
    <span class="hljs-comment">//文件上传进度
    uploader.onProgressAll = <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(progress) {};
   
    <span class="hljs-comment">//关于上传队列的进展
    uploader.onSuccessItem = <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(fileItem, response, status, headers) {};
   
    <span class="hljs-comment">//上传出错时触发
    uploader.onErrorItem = <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(fileItem, response, status, headers) {};
   
    <span class="hljs-comment">//取消上传时触发
    uploader.onCancelItem = <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(fileItem, response, status, headers) {};
   
    <span class="hljs-comment">//在文件上传完成时触发(独立操作成功)
    uploader.onCompleteItem = <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">(fileItem, response, status, headers) {};
   
    <span class="hljs-comment">//上传一个完整的队列时加载所有的文件,或上传一个单独的文件时加载该文件时触发
    uploader.onCompleteAll = <span class="hljs-function"><span class="hljs-keyword">function<span class="hljs-params">() {};
   
    <span class="hljs-keyword">return uploader;</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code><br>实例:</pre>
<pre>/**<br> * 上传功能<br> */<br>$scope.uploadStatus = false; //定义两个上传后返回的状态,成功获失败<br>var uploader = $scope.uploader = new FileUploader({<br>    url: '/comm-fileserver/uploadFile',<br>    formData:[{userCode:$scope.usercode,systemId:'gscore-pa-web',bussType:'payment'}],<br>    queueLimit: 1, //文件个数<br>    removeAfterUpload: true //上传后删除文件<br>});<br>$scope.clearCarItems = function(){ //重新选择文件时,清空队列,达到覆盖文件的效果<br>    uploader.clearQueue();<br>    $scope.fileItem = '';<br>}<br>uploader.onAfterAddingFile = function(fileItem) {<br>    if($scope.iEVersion==8){<br>      $scope.fileItem = fileItem.file; //添加文件之后,把文件信息赋给scope<br>      if($scope.fileItem.type !== 'like/xls'){<br>            layer.msg('上传文件必须为.xls类型文件!!')<br>            $scope.importCondition = {};<br>            $scope.fileItem = '';<br>            return false;<br>      }<br>    }else {<br>      $scope.fileItem = fileItem._file; //添加文件之后,把文件信息赋给scope<br>      if($scope.fileItem.type !== 'application/vnd.ms-excel'){<br>            layer.msg('上传文件必须为.xls类型文件!!')<br>            $scope.importCondition = {};<br>            $scope.fileItem = '';<br>            return false;<br>      }<br>    }<br>};<br>uploader.onSuccessItem = function(fileItem, response, status, headers) {<br>    $scope.uploadStatus = true; //上传成功则把状态改为true<br>    $scope.importCondition.impFileNum = response.resultObj.fileId;<br>    $scope.importCondition.webUserCode =$scope.usercode;<br>    //$scope.importCondition.webComCode=$scope.centerCode;<br>    $scope.importCondition.webComCode=$scope.comCode;<br>    $scope.importCondition.webTaskCode=$scope.getMenuData(location.hash.substring(2,location.hash.length)).taskCode<br>    $scope.importCondition.processStatus=$scope.colRegCondition.processStatus;<br>    goImport($scope.importCondition);<br>};<br>uploader.onErrorItem = function (fileItem, response, status, headers) {<br>    $scope.uploadStatus = false;//上传失败则把状态改为false<br>    layerMsg('上传失败')<br>    //alert('上传失败!');<br>    //暂时功能<br>    //$scope.importCondition.impFileNum = '123456789';<br>};<br>var goImport=function(obj){<br>    $$accountManagement.importFile(obj,{<br>      success: function (data) {<br>            if(data.resultCode == '0000'){<br>                $scope.showMsgList.push(angular.copy(data.content));<br>                $scope.fileData={<br>                  "fileName":data.fileName,<br>                  "impFileNum":data.impFileNum,<br>                  "impNum":data.impNum,<br>                  "impAmount":data.impAmount,<br>                  "currenCY":data.currenCY,<br>                }<br>                $scope.importCondition = {};<br>                $scope.showSubmitBtn=true;<br>            }else{<br>                $scope.uploadStatus=false;<br>                $scope.showMsgList.push(angular.copy(data.content));<br>                $scope.resetUploadFile();<br>            }<br>      },<br>      error: function (e) {<br>      }<br>    })<br><br>};<br>$scope.resetUploadFile=function () {<br>    $scope.importCondition = {};<br>    $scope.showSubmitBtn=false;<br>    $scope.fileItem = '';<br>}</pre>
<pre class="hljs php"><code><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-keyword"><span class="hljs-comment"><span class="hljs-keyword">&nbsp;实例2:<br></span></span></span></span></span></span></span></span></code></pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)"> 1</span>      <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">form </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="form-horizontal"</span><span style="color: rgba(255, 0, 0, 1)"> enctype</span><span style="color: rgba(0, 0, 255, 1)">="multipart/form-data"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 2</span>             <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="form-group col-xs-12 col-sm-12 col-md-6"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 3</span>               <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">label </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="col-xs-4"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>选择待导入文件上传:<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">label</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 4</span>               <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="col-xs-7"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 5</span>                     <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="col-xs-12 input-group"</span><span style="color: rgba(255, 0, 0, 1)"> style</span><span style="color: rgba(0, 0, 255, 1)">="margin-top: 0"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 6</span>                         <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">input </span><span style="color: rgba(255, 0, 0, 1)">placeholder</span><span style="color: rgba(0, 0, 255, 1)">="请选择要上传的文件"</span><span style="color: rgba(255, 0, 0, 1)"> disabled type</span><span style="color: rgba(0, 0, 255, 1)">="text"</span><span style="color: rgba(255, 0, 0, 1)"> class</span><span style="color: rgba(0, 0, 255, 1)">="form-control"</span><span style="color: rgba(255, 0, 0, 1)"> ng-model</span><span style="color: rgba(0, 0, 255, 1)">="fileItem.name"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 7</span>                         <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">a </span><span style="color: rgba(255, 0, 0, 1)">href</span><span style="color: rgba(0, 0, 255, 1)">="javascript:;"</span><span style="color: rgba(255, 0, 0, 1)"> class</span><span style="color: rgba(0, 0, 255, 1)">="input-group-addon cursor_pointer"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 8</span>                           <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="glyphicon"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>浏览<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)"> 9</span>                           <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">input </span><span style="color: rgba(255, 0, 0, 1)">name</span><span style="color: rgba(0, 0, 255, 1)">="certificate"</span><span style="color: rgba(255, 0, 0, 1)"> nv-file-select uploader</span><span style="color: rgba(0, 0, 255, 1)">="uploader"</span><span style="color: rgba(255, 0, 0, 1)">id</span><span style="color: rgba(0, 0, 255, 1)">="fielinput"</span><span style="color: rgba(255, 0, 0, 1)"> ng-click</span><span style="color: rgba(0, 0, 255, 1)">="clearItems()"</span><span style="color: rgba(255, 0, 0, 1)"> type</span><span style="color: rgba(0, 0, 255, 1)">="file"</span><span style="color: rgba(255, 0, 0, 1)"> class</span><span style="color: rgba(0, 0, 255, 1)">="collectscene_file_item"</span><span style="color: rgba(255, 0, 0, 1)">multiplefilters</span><span style="color: rgba(0, 0, 255, 1)">="queueLimit,customFilter"</span><span style="color: rgba(0, 0, 255, 1)">/&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">10</span>                         <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">a</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">11</span>                     <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">12</span>               <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">13</span>             <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">14</span>             <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="form-group"</span><span style="color: rgba(0, 0, 255, 1)">&gt;&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">15</span>             <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">div </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="row list_queryForm_btn"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">16</span>               <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">button </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="btn btn-success btn-width"</span><span style="color: rgba(255, 0, 0, 1)"> ng-click</span><span style="color: rgba(0, 0, 255, 1)">="submitImport()"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>提交<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">button</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">17</span>               <span style="color: rgba(0, 0, 255, 1)">&lt;</span><span style="color: rgba(128, 0, 0, 1)">button </span><span style="color: rgba(255, 0, 0, 1)">class</span><span style="color: rgba(0, 0, 255, 1)">="btn btn-primary"</span><span style="color: rgba(255, 0, 0, 1)"> ng-click</span><span style="color: rgba(0, 0, 255, 1)">="downLoadTem()"</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>模板下载<span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">button</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">18</span>             <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">div</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span>
<span style="color: rgba(0, 128, 128, 1)">19</span>         <span style="color: rgba(0, 0, 255, 1)">&lt;/</span><span style="color: rgba(128, 0, 0, 1)">form</span><span style="color: rgba(0, 0, 255, 1)">&gt;</span></pre>
</div>
<pre class="hljs php"><code><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-keyword"><span class="hljs-comment"><span class="hljs-keyword">&nbsp;</span></span></span></span></span></span></span></span></code></pre>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span>    <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">上传</span>
<span style="color: rgba(0, 128, 128, 1)">2</span>         $scope.uploadStatus = <span style="color: rgba(0, 0, 255, 1)">false</span>; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">定义两个上传后返回的状态,成功获失败</span>
<span style="color: rgba(0, 128, 128, 1)">3</span>         $scope.UpLoadReqDto=<span style="color: rgba(0, 0, 0, 1)">{};
</span><span style="color: rgba(0, 128, 128, 1)">4</span>         <span style="color: rgba(0, 0, 255, 1)">var</span> uploader = $scope.uploader = <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> FileUploader({
</span><span style="color: rgba(0, 128, 128, 1)">5</span>             <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">   url: '/file/uploadFile?userCode=200000477&amp;systemId=crp&amp;bussType=dpProposal',</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 128, 128, 1)">6</span>             url: '/file/uploadFile?userCode='+$rootScope.user.userCode+'&amp;systemId=crp&amp;bussType=dpProposal'<span style="color: rgba(0, 0, 0, 1)">,
</span><span style="color: rgba(0, 128, 128, 1)">7</span>             queueLimit: 1, <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">文件个数</span>
<span style="color: rgba(0, 128, 128, 1)">8</span>             removeAfterUpload: <span style="color: rgba(0, 0, 255, 1)">false</span>, <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">上传后删除文件</span>
<span style="color: rgba(0, 128, 128, 1)">9</span>
<span style="color: rgba(0, 128, 128, 1)"> 10</span> <span style="color: rgba(0, 0, 0, 1)">      });
</span><span style="color: rgba(0, 128, 128, 1)"> 11</span>         $scope.clearItems = <span style="color: rgba(0, 0, 255, 1)">function</span>(){ <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">重新选择文件时,清空队列,达到覆盖文件的效果</span>
<span style="color: rgba(0, 128, 128, 1)"> 12</span> <span style="color: rgba(0, 0, 0, 1)">            uploader.clearQueue();
</span><span style="color: rgba(0, 128, 128, 1)"> 13</span> <span style="color: rgba(0, 0, 0, 1)">      };
</span><span style="color: rgba(0, 128, 128, 1)"> 14</span>         uploader.onAfterAddingFile = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(fileItem) {
</span><span style="color: rgba(0, 128, 128, 1)"> 15</span> <span style="color: rgba(0, 0, 0, 1)">            console.log(fileItem);
</span><span style="color: rgba(0, 128, 128, 1)"> 16</span>
<span style="color: rgba(0, 128, 128, 1)"> 17</span>             <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">fileItem.formData.fileName =fileItem._file.name;</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 128, 128, 1)"> 18</span>             <span style="color: rgba(0, 0, 255, 1)">var</span> reader = <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> FileReader();
</span><span style="color: rgba(0, 128, 128, 1)"> 19</span>             <span style="color: rgba(0, 0, 255, 1)">debugger</span>
<span style="color: rgba(0, 128, 128, 1)"> 20</span>             <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">   console.log(fileItem.formData)
</span><span style="color: rgba(0, 128, 128, 1)"> 21</span> <span style="color: rgba(0, 128, 0, 1)">             reader.readAsArrayBuffer(fileItem.formData);</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 128, 128, 1)"> 22</span>             <span style="color: rgba(0, 0, 255, 1)">if</span>($scope.iEVersion==8<span style="color: rgba(0, 0, 0, 1)">){
</span><span style="color: rgba(0, 128, 128, 1)"> 23</span>               $scope.fileItem = fileItem.file; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">添加文件之后,把文件信息赋给scope</span>
<span style="color: rgba(0, 128, 128, 1)"> 24</span>               <span style="color: rgba(0, 0, 255, 1)">if</span>($scope.fileItem.type !== 'like/xls'<span style="color: rgba(0, 0, 0, 1)">){
</span><span style="color: rgba(0, 128, 128, 1)"> 25</span>                     layer.msg('上传文件必须为.xls类型文件!!'<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 128, 1)"> 26</span>                     $scope.importCondition =<span style="color: rgba(0, 0, 0, 1)"> {};
</span><span style="color: rgba(0, 128, 128, 1)"> 27</span>                     $scope.fileItem = ''<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 28</span>                     <span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 29</span> <span style="color: rgba(0, 0, 0, 1)">                }
</span><span style="color: rgba(0, 128, 128, 1)"> 30</span>             }<span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)"> 31</span>
<span style="color: rgba(0, 128, 128, 1)"> 32</span>               $scope.fileItem = fileItem._file; <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">添加文件之后,把文件信息赋给scope</span>
<span style="color: rgba(0, 128, 128, 1)"> 33</span>               <span style="color: rgba(0, 0, 255, 1)">if</span>($scope.fileItem.type !== 'text/plain'
<span style="color: rgba(0, 128, 128, 1)"> 34</span>                     &amp;&amp; $scope.fileItem.type != 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
<span style="color: rgba(0, 128, 128, 1)"> 35</span>                     &amp;&amp; $scope.fileItem.type != 'application/vnd.ms-excel'<span style="color: rgba(0, 0, 0, 1)">){
</span><span style="color: rgba(0, 128, 128, 1)"> 36</span>                     layer.msg('上传文件必须为.xls,xlsx, csv类型文件!!'<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 128, 1)"> 37</span>                     $scope.importCondition =<span style="color: rgba(0, 0, 0, 1)"> {};
</span><span style="color: rgba(0, 128, 128, 1)"> 38</span>                     $scope.fileItem = ''<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 39</span>                     <span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 40</span> <span style="color: rgba(0, 0, 0, 1)">                }
</span><span style="color: rgba(0, 128, 128, 1)"> 41</span> <span style="color: rgba(0, 0, 0, 1)">            }
</span><span style="color: rgba(0, 128, 128, 1)"> 42</span> <span style="color: rgba(0, 0, 0, 1)">      };
</span><span style="color: rgba(0, 128, 128, 1)"> 43</span>         uploader.onSuccessItem = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(fileItem, response, status, headers) {
</span><span style="color: rgba(0, 128, 128, 1)"> 44</span>             $scope.uploadStatus = <span style="color: rgba(0, 0, 255, 1)">true</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 45</span>             $scope.fileItem = ''<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 46</span>             $scope.UpLoadReqDto=<span style="color: rgba(0, 0, 0, 1)">{};
</span><span style="color: rgba(0, 128, 128, 1)"> 47</span>             $scope.UpLoadReqDto.fileName =<span style="color: rgba(0, 0, 0, 1)">fileItem._file.name;
</span><span style="color: rgba(0, 128, 128, 1)"> 48</span>             $scope.UpLoadReqDto.fileId=<span style="color: rgba(0, 0, 0, 1)">response.fileId;
</span><span style="color: rgba(0, 128, 128, 1)"> 49</span>             $scope.UpLoadReqDto.channelCode =<span style="color: rgba(0, 0, 0, 1)">$scope.newColRegCondition.channelCode ;
</span><span style="color: rgba(0, 128, 128, 1)"> 50</span>             $scope.UpLoadReqDto.operatorCode =<span style="color: rgba(0, 0, 0, 1)">$rootScope.user.userCode;
</span><span style="color: rgba(0, 128, 128, 1)"> 51</span>             $scope.UpLoadReqDto.comCode=<span style="color: rgba(0, 0, 0, 1)">$scope.comCode;
</span><span style="color: rgba(0, 128, 128, 1)"> 52</span>             $scope.importCond = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(){
</span><span style="color: rgba(0, 128, 128, 1)"> 53</span> <span style="color: rgba(0, 0, 0, 1)">                $$statementImport.submitImportDataAdd($scope.UpLoadReqDto,{
</span><span style="color: rgba(0, 128, 128, 1)"> 54</span>                     success: <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (data) {
</span><span style="color: rgba(0, 128, 128, 1)"> 55</span>                         <span style="color: rgba(0, 0, 255, 1)">if</span>(data.content.resultCode == 1<span style="color: rgba(0, 0, 0, 1)">){
</span><span style="color: rgba(0, 128, 128, 1)"> 56</span>                           layer.confirm('数据已存在,是否重复导入!',{btn: ['确定','取消'],icon: '3'},<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(index){
</span><span style="color: rgba(0, 128, 128, 1)"> 57</span>                                 <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">点确定回调方法</span>
<span style="color: rgba(0, 128, 128, 1)"> 58</span>                                 $scope.importCondition.signRequest = '1'<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 59</span> <span style="color: rgba(0, 0, 0, 1)">                              $$statementImport.submitImportDataAdd($scope.importCondition,{
</span><span style="color: rgba(0, 128, 128, 1)"> 60</span>                                     success:<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (data) {
</span><span style="color: rgba(0, 128, 128, 1)"> 61</span>                                       <span style="color: rgba(0, 0, 255, 1)">if</span>(data.content.resultCode == '0000'<span style="color: rgba(0, 0, 0, 1)">){
</span><span style="color: rgba(0, 128, 128, 1)"> 62</span>                                             layer.msg(data.content.resultMsg,{icon:1<span style="color: rgba(0, 0, 0, 1)">});
</span><span style="color: rgba(0, 128, 128, 1)"> 63</span>                                             $scope.importCondition =<span style="color: rgba(0, 0, 0, 1)"> {};
</span><span style="color: rgba(0, 128, 128, 1)"> 64</span>                                             <span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 65</span>                                       }<span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
</span><span style="color: rgba(0, 128, 128, 1)"> 66</span>                                             layer.alert(data.content.resultMsg,{icon:2<span style="color: rgba(0, 0, 0, 1)">})
</span><span style="color: rgba(0, 128, 128, 1)"> 67</span>                                             <span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 68</span> <span style="color: rgba(0, 0, 0, 1)">                                        }
</span><span style="color: rgba(0, 128, 128, 1)"> 69</span>                                     },error: <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (e) {
</span><span style="color: rgba(0, 128, 128, 1)"> 70</span>                                       layer.alert(data.content.resultMsg,{icon:2<span style="color: rgba(0, 0, 0, 1)">})
</span><span style="color: rgba(0, 128, 128, 1)"> 71</span>                                       <span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 72</span> <span style="color: rgba(0, 0, 0, 1)">                                    }
</span><span style="color: rgba(0, 128, 128, 1)"> 73</span> <span style="color: rgba(0, 0, 0, 1)">                              })
</span><span style="color: rgba(0, 128, 128, 1)"> 74</span> <span style="color: rgba(0, 0, 0, 1)">                            })
</span><span style="color: rgba(0, 128, 128, 1)"> 75</span>                         }<span style="color: rgba(0, 0, 255, 1)">else</span> <span style="color: rgba(0, 0, 255, 1)">if</span>(data.content.resultCode == '0000'<span style="color: rgba(0, 0, 0, 1)">){
</span><span style="color: rgba(0, 128, 128, 1)"> 76</span>                           layer.msg(data.content.resultMsg,{icon: 1<span style="color: rgba(0, 0, 0, 1)">})
</span><span style="color: rgba(0, 128, 128, 1)"> 77</span>                           $scope.importCondition =<span style="color: rgba(0, 0, 0, 1)"> {};
</span><span style="color: rgba(0, 128, 128, 1)"> 78</span>                           <span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 79</span>                         }<span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)">{
</span><span style="color: rgba(0, 128, 128, 1)"> 80</span>                           layer.alert(data.content.resultMsg,{icon:2<span style="color: rgba(0, 0, 0, 1)">})
</span><span style="color: rgba(0, 128, 128, 1)"> 81</span>                           <span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 82</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)"> 83</span>                         angular.forEach($scope.confirmList,<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(data){
</span><span style="color: rgba(0, 128, 128, 1)"> 84</span>                           $scope.queryNum++<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 85</span>                           data.checked=<span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 86</span>                           data.selectedClass=''
<span style="color: rgba(0, 128, 128, 1)"> 87</span> <span style="color: rgba(0, 0, 0, 1)">                        })
</span><span style="color: rgba(0, 128, 128, 1)"> 88</span> <span style="color: rgba(0, 0, 0, 1)">                  },
</span><span style="color: rgba(0, 128, 128, 1)"> 89</span>                     error: <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (e) {
</span><span style="color: rgba(0, 128, 128, 1)"> 90</span>                         layer.alert(data.content.resultMsg,{icon:2<span style="color: rgba(0, 0, 0, 1)">})
</span><span style="color: rgba(0, 128, 128, 1)"> 91</span>                         <span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)"> 92</span> <span style="color: rgba(0, 0, 0, 1)">                  }
</span><span style="color: rgba(0, 128, 128, 1)"> 93</span> <span style="color: rgba(0, 0, 0, 1)">                });
</span><span style="color: rgba(0, 128, 128, 1)"> 94</span> <span style="color: rgba(0, 0, 0, 1)">            }
</span><span style="color: rgba(0, 128, 128, 1)"> 95</span> <span style="color: rgba(0, 0, 0, 1)">            $scope.importCond();
</span><span style="color: rgba(0, 128, 128, 1)"> 96</span>
<span style="color: rgba(0, 128, 128, 1)"> 97</span>
<span style="color: rgba(0, 128, 128, 1)"> 98</span> <span style="color: rgba(0, 0, 0, 1)">      };
</span><span style="color: rgba(0, 128, 128, 1)"> 99</span>         uploader.onErrorItem = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (fileItem, response, status, headers) {
</span><span style="color: rgba(0, 128, 128, 1)">100</span>             $scope.uploadStatus = <span style="color: rgba(0, 0, 255, 1)">false</span>;<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">上传失败则把状态改为false</span>
<span style="color: rgba(0, 128, 128, 1)">101</span>             $scope.fileItem = ''<span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">102</span>             layer.alert('上传失败!'<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(0, 128, 128, 1)">103</span> <span style="color: rgba(0, 0, 0, 1)">      };
</span><span style="color: rgba(0, 128, 128, 1)">104</span>         <span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">*
</span><span style="color: rgba(0, 128, 128, 1)">105</span> <span style="color: rgba(0, 128, 0, 1)">         *提交
</span><span style="color: rgba(0, 128, 128, 1)">106</span>          <span style="color: rgba(0, 128, 0, 1)">*/</span>
<span style="color: rgba(0, 128, 128, 1)">107</span>         $scope.submitImport = <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)">(target){
</span><span style="color: rgba(0, 128, 128, 1)">108</span>             <span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">先验证焦点定位</span>
<span style="color: rgba(0, 128, 128, 1)">109</span>             $scope.uploadStatus = <span style="color: rgba(0, 0, 255, 1)">false</span><span style="color: rgba(0, 0, 0, 1)">;
</span><span style="color: rgba(0, 128, 128, 1)">110</span> <span style="color: rgba(0, 0, 0, 1)">            $$venus.Focus(
</span><span style="color: rgba(0, 128, 128, 1)">111</span>               "premiumForm"
<span style="color: rgba(0, 128, 128, 1)">112</span> <span style="color: rgba(0, 0, 0, 1)">            ).then(
</span><span style="color: rgba(0, 128, 128, 1)">113</span>               <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> (Ele) {
</span><span style="color: rgba(0, 128, 128, 1)">114</span>                     <span style="color: rgba(0, 0, 255, 1)">if</span><span style="color: rgba(0, 0, 0, 1)"> (angular.isDefined(Ele)) {
</span><span style="color: rgba(0, 128, 128, 1)">115</span>                         $timeout(<span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> () {
</span><span style="color: rgba(0, 128, 128, 1)">116</span> <span style="color: rgba(0, 0, 0, 1)">                            Ele.focus();
</span><span style="color: rgba(0, 128, 128, 1)">117</span>                         },1000<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 128, 1)">118</span>                     } <span style="color: rgba(0, 0, 255, 1)">else</span><span style="color: rgba(0, 0, 0, 1)"> {
</span><span style="color: rgba(0, 128, 128, 1)">119</span>                         <span style="color: rgba(0, 0, 255, 1)">debugger</span>
<span style="color: rgba(0, 128, 128, 1)">120</span> <span style="color: rgba(0, 0, 0, 1)">                        uploader.uploadAll();
</span><span style="color: rgba(0, 128, 128, 1)">121</span>                         <span style="color: rgba(0, 0, 255, 1)">if</span>($scope.fileItem== undefined||$scope.fileItem== ''<span style="color: rgba(0, 0, 0, 1)">){
</span><span style="color: rgba(0, 128, 128, 1)">122</span>                           layerMsg('请选择上传文件'<span style="color: rgba(0, 0, 0, 1)">)
</span><span style="color: rgba(0, 128, 128, 1)">123</span> <span style="color: rgba(0, 0, 0, 1)">                        }
</span><span style="color: rgba(0, 128, 128, 1)">124</span>
<span style="color: rgba(0, 128, 128, 1)">125</span>
<span style="color: rgba(0, 128, 128, 1)">126</span> <span style="color: rgba(0, 0, 0, 1)">                  }
</span><span style="color: rgba(0, 128, 128, 1)">127</span> <span style="color: rgba(0, 0, 0, 1)">                }
</span><span style="color: rgba(0, 128, 128, 1)">128</span> <span style="color: rgba(0, 0, 0, 1)">            )
</span><span style="color: rgba(0, 128, 128, 1)">129</span>
<span style="color: rgba(0, 128, 128, 1)">130</span>         };</pre>
</div>
<p>&nbsp;</p>
<pre class="hljs php"><code><span class="hljs-function"><span class="hljs-keyword"><span class="hljs-params"><span class="hljs-comment"><span class="hljs-comment"><span class="hljs-keyword"><span class="hljs-comment"><span class="hljs-keyword">&nbsp;</span></span></span></span></span></span></span></span></code></pre><br><br>
来源:https://www.cnblogs.com/xu-blog/p/11996645.html
頁: [1]
查看完整版本: angular.js的 的上传功能实现---FileUploader