我正在使用ASP.NET Web API 2.2后端开发AngularJS 1.x项目。我通常会以正常的单页面应用程序(SPA)方式处理这个问题。但是我收到了一些奇怪的请求...弹出对话框(请记住... window.showModalDialog())。
我已经完成了大部分工作,但是我遇到了一些奇怪的事情。将共享对象(弹出对话框和Angular SPA之间的'sharedObject')'window.dialogArguments'传递回Angular前端时,它往往只喜欢键/值对。它不需要任何类型的数组。
我想通过'windows.dialogArguments'将一个文件对象数组或'FileList'传递回AngularJS前端。我想通过以下输入执行此操作:
<input id="upldDcmnts"
name="upldDcmnts"
type="file"
multiple />
我尝试了以下最简单的方法:
window.dialogArguments.UploadFiles =
document.getElementById( "UpldDcmnts" ).files;
...并将它们附加到Angular控制器中的FormData对象,如下所示:
var formData = new FormData();
formData.append( "upload_files", sharedObject.UploadFiles );
此失败,并在Internet Explorer(IE)11的F12调试器中出现以下错误:
TypeError: Permission denied
如果有人可以,请解释我如何通过'window.dialogArguments'将上传输入的文件对象数组传递到角度前端。
表单设置似乎正确。它有一个'name'属性和......
enctype="multipart/form-data"
注意:我理解这是非常规的,但是客户是Windows用户很长时间并且没有任何其他方式(请相信我试图以另一种方式谈论它们并且在此过程中变得意味深长。 ..)。我理解SPA模式可以使用并且看起来更漂亮但在这种情况下无关紧要。