无法使用Angular.js添加带文件名的随机数

时间:2015-12-28 10:51:58

标签: javascript angularjs ng-file-upload

我需要一个帮助。我需要使用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)和文件名。请帮助我。

2 个答案:

答案 0 :(得分:0)

这是我的工作jsfiddle

这是控制器

 [uName] varchar
 [password] varchar
 [dtCreated] datetime
 [dtUpdated] datetime
 [isLocked] bit

这是HTML

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;
  }
 });

答案 1 :(得分:0)

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

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