1

我需要一个帮助。我需要使用 Angular.js 添加一个带有文件名的随机数。我在下面解释我的代码。

<div ng-class="{'myError': billdata.regdoc.$touched && billdata.regdoc.$invalid }">
<input type="file" class="filestyle form-control" data-size="lg" name="regdoc" id="regdoc"  ng-model="regfile" ngf-pattern="application/pdf,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.wordprocessingml.document" accept="application/pdf,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.wordprocessingml.document"  ngf-select="onRegFileSelect($file);" >
</div>
</div>
<div class="help-block" ng-messages="billdata.regdoc.$error" ng-if="billdata.regdoc.$touched">
<p ng-message="pattern" style="color:#F00;">This field only accepts .pdf,.ppt,.docx files.</p>
</div>

我的控制器文件代码如下。

var regDocURL='';
$scope.onRegFileSelect=function(files){
        console.log('docs details',files);
        regDocURL=files;
}
var curnum=(Math.random() * new Date().getTime()).toString(36).replace(/\./g, '');
var regDocs=regDocURL;
var newRegPath=curnum+"_"+ regDocs.name;
regDocs.name=newRegPath;
console.log('reg file',newRegPath,regDocs);

在控制台消息中,我无​​法获取包含一些随机数的新文件名。这里我需要在文件名中包含一个随机数(i.e-curnum)。请帮助我。

4

2 回答 2

0

您可以使用Upload.rename(file, newName). 这将使用新名称上传文件。

为了在 ui 上显示文件的新名称,您可以使用在其中保留新名称的范围变量,或者您可以使用file.ngfName.

于 2015-12-29T12:41:26.970 回答
0

这是我的工作jsfiddle

这是控制器

angular.module('app', ["ngFileUpload"]).controller('ctrl', function($scope) {

  $scope.onRegFileSelect=function(files){
      console.log('docs details',files);
      var curnum=(Math.random() * new Date().getTime()).toString(36).replace(/\./g, '');
      $scope.newname=curnum+"_"+ files.name;
  }
 });

这是 HTML

<div data-ng-app="app" data-ng-controller="ctrl">
<input type="file" data-size="lg" ng-model="regfile" ngf-select ngf-change="onRegFileSelect($file);" >
<p>
{{newname}}
</p>
</div>
于 2015-12-28T11:18:37.080 回答