Javascript上传多个自动生成的文件表单

时间:2017-01-20 07:46:29

标签: javascript jquery angularjs file multipartform-data

在我的页面中,我只输入了一个html文件:

input type="file" name="file" files-model="service.file" id="filo" accept=".zip" />

我过去常常将我的文件上传到多部分文件请求中,如下所示:

 var fd = new FormData();
 fd.append('file', filo.files[0]);//filo is the id of the input
 //and send my http request having fd as a parameter

问题是,现在我在页面中使用角度ng-repeat自动生成表单,所以我无法使用输入ID获取文件,我现在该怎么办?

干杯,

1 个答案:

答案 0 :(得分:0)

使用javascript会有点棘手。 this图书馆为我工作。见下面的例子。

<a class="btn btn-sm btn-primary" 
   type="file"
   ngf-select="receiveSlectedFiles($file)">
   Select Logo
</a>

无论何时选择文件,您都可以在 receiveSlectedFiles($ file)函数中获取它。当用户选择有效文件时,它将在$ file中,否则$ file将为null。

控制器中的

示例:

 var arrayOfFiles = [];
   $scope.receiveSlectedFiles = function (file) {
    if (file) {
        arrayOfFiles.push(file);
    }
};

在投放使用时,请注入上传,然后使用以下代码上传图片:

this.uploadMultiple = function (files) {
        var uri = yourApiUrl;

        return Upload.upload({
            url: uri,
            arrayKey: '',
            data: {
                files: files
            }
        })
    };

在控制器中,您只需要将文件数组传递给此服务。