2

我正在使用此处提供的 angular-file-upload:https ://github.com/danialfarid/angular-file-upload 。正如您在同一页面上提供的示例中看到的那样,文件数据使用可用的指令从控制器发布到后端。

但是,当我实现代码时,我将文件发布移动到服务中,因为这将允许我重新使用功能并感觉正确的方式(不同意?)。一切正常,除了我无法弄清楚如何将数据从.progress(function(evt)){}跟踪文件上传完成状态的 ... 函数发送到控制器并分别在 html 页面上回显它。

使用.then我可以得到我猜想的最终成功响应,但是这个进度数据呢?

我在这里错过了一些非常简单的东西吗?如何完成这项工作?

4

1 回答 1

0

很长一段时间后,这就是它的工作原理。

使用 promise 的 notify 回调可以解决问题。正如我之前所说,我已将文件上传代码(基于此代表在此处输入链接描述)移动到角度服务中,但我无法获得文件上传进度。由于我是从服务中返回承诺,所以我只能完成文件。

上面的 git rep 也有一个

.progress(function(evt){ file_upload_percent=(parseInt(100.0 * evt.loaded / evt.total)})

给出文件完成百分比的函数。在这里使用 promise notify,我们可以像这样返回这个中间值:

.progress(function(evt) {   file_upload_percent=(parseInt(100.0 * evt.loaded / evt.total)); deferred.notify(file_upload_percent);})

稍后使用来自承诺返回的通知回调,我们可以访问文件完成百分比。

.then(function(response){},function(){},function(update){$scope.file_upload_percent=update});

随意使用 $scope.file_upload_percent 。

于 2014-07-08T05:15:22.343 回答