代码之家  ›  专栏  ›  技术社区  ›  Sreeragh A R

如何限制文件的UTF-8编码只在角文件上传?

  •  1
  • Sreeragh A R  · 技术社区  · 6 年前

    我用ng文件上传上传一个文本文件。

    <span type="file" class="btn" ngf-select ng-model="fileUser" name="fileUser" ngf-pattern="'.txt,.TXT'" ngf-accept="'text/plain'"> Select File </span>
    

    1 回复  |  直到 6 年前
        1
  •  2
  •   davidkonrad    6 年前

    本机不支持它 ng-file-upload 但你可以自己创造。钩入 ngf-change 这种方式:

    ngf-change="checkEncoding($files, $file, $newFiles, $duplicateFiles, $invalidFiles, $event)" 
    

    包括 encoding.js .txt 文件,加载文件的内容 FileReader 使用 编码.js 要测试编码:

    $scope.checkEncoding = function(files, file, newFiles, duplicateFiles, invalidFiles, event) {
      if (!event.target.files) return
      var testFile = event.target.files[0];
      var reader = new FileReader();
      reader.onload = function(e) {
        var content = new Uint8Array(e.target.result);
        var encoding = Encoding.detect(content);
        if (encoding != 'UTF8') {
          //alert to the user, reset the file ng-model whatever ...
        }
      }
      reader.readAsArrayBuffer(testFile)
    }
    

    这是一个有效的例子-> http://plnkr.co/edit/1UM9NDpNgRbJ13R67xuf?p=preview