上传文件中的文件数组,角度为4

时间:2017-08-23 20:41:00

标签: angular file-upload

我在模板中选择文件如下:

 <input type="file" #fileupload [(ngModel)]="myFile" name="myFile" (change)="fileChange(fileupload.files)" />

然后在组件中使用此函数来操作对象:

fileChange(event){
console.log( event);
this.myFile = event[0];}

编译没问题且没有错误,但我在浏览器中收到此错误:

ERROR Error: [object Object]
at viewWrappedDebugError (core.es5.js:8410)
at callWithDebugContext (core.es5.js:13475)
at Object.debugHandleEvent [as handleEvent] (core.es5.js:13053)
at dispatchEvent (core.es5.js:8602)
at core.es5.js:9213
at HTMLInputElement.<anonymous> (platform-browser.es5.js:2651)
at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:424)
at Object.onInvokeTask (core.es5.js:3881)
at ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:423)
at Zone.webpackJsonp.../../../../zone.js/dist/zone.js.Zone.runTask (zone.js:191)

ERROR Error: Uncaught (in promise): InvalidStateError: Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename, which may only be programmatically set to the empty string.
Error: Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename, which may only be programmatically set to the empty string.

实际上我可以看到该对象包含我选择的文件,但仍然会出错。

enter image description here

1 个答案:

答案 0 :(得分:1)

出于安全原因,您无法使用javascript更改文件上传输入的值。没有一个笨蛋或任何事情很难说,但我认为你的错误发生在这里:this.myFile = event[0];快速检查你要设置一个临时变量而不是this.myFile。

编辑: 您需要删除ngModel,并将fileChange的参数更改为&#34; event&#34;而不是fileupload.files。那应该可行。