javascript - 如何使用 angularjs 将文件详细信息发送到后端?

标签 javascript angularjs

您好,我正在使用 angularjs 开发 Web 应用程序。我正在开发文件上传模块。我有以下包含文件详细信息的数组。

//获取文件数组的代码

$scope.showPicker=function()
            {
                var client = filestack.init('AGeDIRvVZTRWgtmFbfGuZz');
                client.pick({
                }).then(function (result) {
                    arrMakes.push(result.filesUploaded);
                });
            }

FileDetails(array)

在上图中,我展示了我的数组。我有三个文件。 下面是我将详细信息发送到 api 的 Angular 代码。

var files = new FormData();

angular.forEach(arrMakes, function (value, index) {
  console.log(value,index);
  files.append(index, value);
  files.append('data', angular.toJson(index).replace(/['"]+/g, ''));
});

return $http.post(this.uploadUrl, files, {
  transformRequest: angular.identity,
  headers: {
    'Content-Type': undefined,
  }
})

问题是我没有在服务器端接收文件。下行在服务器中给我 0 个文件。

System.Web.HttpFileCollection hfc = System.Web.HttpContext.Current.Request.Files;

我可以知道我向服务器发送了正确的数据吗?有人可以帮我解决这个问题吗?任何帮助将不胜感激。谢谢。

最佳答案

您没有向服务器上传任何文件,只有字符串。

您不能将对象附加到 FormData。除了Blob & File对象
看看会发生什么:

fd = new FormData
fd.append(2, {foo: 'bar'})
fd.append('data', 5)
new Response(fd).text().then(console.log)
// you get [object Object]

为什么要将“数据”中的索引字符串化?它将自动转换为字符串。您必须更换什么?

如果我在你那里,我会简单地将漏洞 arrMakes 发送到服务器并从后端的 url 下载所有文件,否则客户端必须下载然后将它们上传到服务器并浪费带宽和时间。

此外,你不需要 angulars forEach 循环,数组有内置的方法

arrMakes.forEach(function (value, index) {
  ...
})

如果你只是将 arrMarks 传递给服务器,你甚至不必使用任何循环

关于javascript - 如何使用 angularjs 将文件详细信息发送到后端?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45506040/

相关文章:

javascript - 通过 Angular JS 将焦点设置在下拉菜单切换的第一个输入字段上

javascript - 使用成功方法不使用 $http.get 从 json-angularjs 调用到外部 url 获取 json 数据

html - AngularJS 按需加载字体

javascript - 清除文档后,document.write(ln) 不起作用?

javascript - 模拟鼠标点击下拉菜单

AngularJS ngRoute 不工作

javascript - 如何在 Angular 中使用 controllerAs 语法时监听 $destroy

javascript - 退出 Express 应用程序的正确方法是什么?

javascript - CSS & Javascript 效果 : arraning characters justified with different spacing between letters. Mousemove 受影响

javascript - 如何使超链接上的相同工作 JavaScript 代码可以在单击按钮时工作?