无法使用Angular.js ng-file-upload替换文件名

问题描述 投票:0回答:2

我正在尝试使用Angular.js ng-file-upload上传文件后重命名文件名。但是当我删除ngf-min-height="400" ngf-resize="{width: 400, height:400}"属性时,我的情况发生了什么。我在下面提供我的代码:

<input type="file"  data-size="lg" name="bannerimage" id="imagefile1"  ng-model="file" ngf-pattern="image/*" accept="image/*"  ngf-max-size="2MB" ngf-min-height="400" ngf-resize="{width: 400, height:400}"   custom-on-change="uploadFile"  ngf-select="onFileSelect($file);" >

我的控制器端代码如下:

$scope.onFileSelect = function($files) {
         fileURL=$files;
         $scope.imageData='';
    }
var file=fileURL;
var today=(Math.random() * new Date().getTime()).toString(36).replace(/\./g, '');
var newpath=today+"_"+ file.name;
file.name=newpath;

在上面的代码中,我将一个随机数添加到文件名并替换它。在这种情况下,它正常,但如果我从文件输入中删除ngf-min-height="400" ngf-resize="{width: 400, height:400}"如下。

<input type="file"  data-size="lg" name="bannerimage" id="imagefile1"  ng-model="file" ngf-pattern="image/*" accept="image/*"  ngf-max-size="2MB"   custom-on-change="uploadFile"  ngf-select="onFileSelect($file);" >

在这种情况下,我无法替换新的文件名,我不需要限制文件height and width

javascript angularjs ng-file-upload
2个回答
4
投票

ng-file-upload的上传服务有一个方法。这是一个例子:

$scope.$watch('dropFile', function () {
    uploadFile($scope.dropFile);
});

function uploadFile(file) {
  if (!file) {
    return;
  }

  file = Upload.rename(file, "newName.ext");

  Upload.upload({
        url: <api url for upload>,
        data: {file: file}
    }).then(function (resp) {
      //successful
    }, function (resp) {
        //error
    }, function (evt) {
       //progress
    });
}

1
投票

试试这段代码

<input type="file"  data-size="lg" name="bannerimage" id="imagefile1"  ng-model="file" accept="image/*" ng-file-select="onFileSelect($files[0]);" >

$scope.onFileSelect =function(file){
    filename = 'jihin.' + file.name.split(".")[1];
    var imgFile = new File([file], filename, {type:file.type});
    console.log(imgFile);
};
© www.soinside.com 2019 - 2024. All rights reserved.