【问题标题】:how to check the extension of a file and validate it which is uploaded from google drive如何检查文件的扩展名并验证从谷歌驱动器上传的文件
【发布时间】:2017-10-31 14:01:18
【问题描述】:

我有一个选择标签,它有 3 个选项,powerpoint、pdf 和电子表格,我正在从未经验证的谷歌驱动器上传它,这意味着如果我给 ppt 链接到 pdf 选项它正在上传。请帮我验证一下。

我的代码是

<div class="row widget-row" ng-if="mediaData.mediaType == 14">
     <div class="form-group">
         <label>Document Type*</label> 
         <select class="form-control" ng-model="mediaData.googleDocType" required>
              <option value="0" >Powerpoint</option>
              <option value="2" id="spreadsheet">Spreadsheet</option>
              <option value="3">PDF</option>
         </select>
     </div>
</div>

<div class="row widget-row" ng-if="mediaData.mediaType == 14">
     <div class="form-group">
           <label>Link *</label> 
           <input type="text" class="form-control" ng-model="mediaData.docLink" required>
     </div>
</div>

AngularJs 代码是

case '14' : $scope.googleDocumentObject = new GoogleDocumentObject();
                if(mediaData.googleDocType == 0){
                    $scope.googleDocumentObject.source = mediaData.docLink;
                    $scope.googleDocumentObject.attributes.documentType = 0;
                    $scope.updateProgram("googlePPT",$scope.googleDocumentObject,1,$scope.cssObject);
                }
                else if(mediaData.googleDocType == 1){

                    $scope.googleDocumentObject.source = mediaData.docLink;
                    $scope.googleDocumentObject.attributes.documentType = 1;
                    $scope.updateProgram("googleDocument",$scope.googleDocumentObject,1,$scope.cssObject);
                }
                else{
                    $scope.googleDocumentObject.source = mediaData.docLink;
                    console.log($scope.googleDocumentObject.source);
                    $scope.googleDocumentObject.attributes.documentType = 2;
                    $scope.updateProgram("googleDocument",$scope.googleDocumentObject,1,$scope.cssObject);
                }
                break;

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    从带有mediaData.link.split('.').pop(); 的链接或在自定义函数中使用regex 获取文件扩展名。 此函数返回一个布尔标志,以使用mediaData.googleDocType 枚举检查其有效性。

    case '14':
      $scope.googleDocumentObject = new GoogleDocumentObject();
      var isValid = CheckIfValidFile(mediaData);
      if (isValid) {
        //Upload accordingly
      }
      break;
    
    function CheckIfValidFile(mediaData) {
        var ext = mediaData.link.split('.').pop();
        //Or using below regex
        var re = /(?:\.([^.]+))?$/;
        var ext = re.exec(mediaData.link)[1];
    
        if ((ext === 'ppt' || ext === 'pptx') && mediaData.googleDocType == 0) {
          return true;
        } else((ext === 'doc' || ext === 'docx') && mediaData.googleDocType == 1) {
          return true;
        } else(ext === 'pdf' && mediaData.googleDocType == 2) {
          return true;
        }
        return false;
    }
    

    【讨论】:

    • 嗨 Sajal 感谢您的更新.. 但每个链接都不提供扩展名。例如,这是电子表格的链接。 https://docs.google.com/spreadsheets/d/1yMh4nUWxHbDYubBMzk5zaNpmYmUtHi4geJD97h3qS0c/edit#gid=0。如何解决这些问题?
    猜你喜欢
    • 2012-10-04
    • 2014-11-06
    • 1970-01-01
    • 2011-05-13
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多