IT序号网

Angular 转换文件输入到base64

www_RR 2025年01月19日 编程语言 31 0

我正在尝试在我的 Angular 项目中解析输入到base64的文件。

在我的模板中,我有:

<input type="file" (change)="handleUpload($event)"> 

然后我的功能是这样的:
handleUpload(event) { 
    const file = event.target.files[0]; 
    const reader = new FileReader(); 
    reader.readAsDataURL(event); 
    reader.onload = () => { 
        console.log(reader.result); 
    }; 
} 

这给了我这个错误:
ERROR TypeError: Failed to execute 'readAsDataURL' on 'FileReader': parameter 1 is not of type 'Blob'. 
    at _global.(anonymous function).(anonymous function) [as readAsDataURL] (webpack-internal:///./node_modules/zone.js/dist/zone.js:1323:60) 
    at AccountFormComponent.handleUpload (account-form.component.ts:212) 
    at Object.eval [as handleEvent] (AccountFormComponent.html:344) 
    at handleEvent (core.js:13547) 
    at callWithDebugContext (core.js:15056) 
    at Object.debugHandleEvent [as handleEvent] (core.js:14643) 
    at dispatchEvent (core.js:9962) 
    at eval (core.js:10587) 
    at HTMLInputElement.eval (platform-browser.js:2628) 
    at ZoneDelegate.invokeTask (zone.js:421) 

请您参考如下方法:

您将事件传递给方法而不是文件。
您的方法应如下所示:

handleUpload(event) { 
    const file = event.target.files[0]; 
    const reader = new FileReader(); 
    reader.readAsDataURL(file); 
    reader.onload = () => { 
        console.log(reader.result); 
    }; 
} 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!