使用 angular 和 angular-file-upload 上传文件

kee*_*ach 3 file-upload angularjs

我正在使用 angular 和这个插件来上传文件。它基本上开始处理文件上传,但我准备开始提交表单。

我试过这个:

HTML

<form>
   <input type="file" ng-file-select="onFileSelect($files)">
   <input type="submit" ng-click="sendMail()" value="send">
</form>
Run Code Online (Sandbox Code Playgroud)

JS

app.controller('mail', function ($scope, $http, $upload) {

    $scope.onFileSelect = function($files) {
        $scope.files = angular.copy($files);
        console.log($scope.files); // Returns my object (size, type, name...)
    }

    $scope.sendMail = function() {
    var file = myFile;
    console.log(file);             // Still returns my object
        $scope.upload = $upload.upload({
        url: 'server/mail.php',
        data: { 
            // stuff 
        },
        file: file,                // Returns : Error: does not implement Blob
        }).success(function(data, status, headers, config) {
            console.log(data);
        });
    }

})
Run Code Online (Sandbox Code Playgroud)

我试图像myFile = $scope.files;在第一个函数中那样创建一个全局变量。然后像这样在第二个调用它:var file = myFile;。控制台日志返回相同的对象,但出现以下错误:

错误:FormData.append 的参数 2 未实现接口 Blob。

感谢您提供任何提示。

kee*_*ach 5

好的,所以有人给我答案。

就我而言, angular.copy() 将变量从File更改为Object。所以我只需要删除它。

跳它可以帮助。