У меня есть <input type="file">
, который я пытаюсь загрузить на удаленный сервер. Я видел видео, где это достигается путем добавления выбранного объекта файла к объекту FormData
и отправки с использованием http
.
Проблема в том, что мой FormData
объект пуст. Я видел в Интернете, что для проверки FormData
нужно пройти через FormData.entries()
, но я получаю ошибку entries is not a known property of "FormData"
. Я видел онлайн исправление, включающее добавление:
declare global {
interface FormData {
entries(): Iterator<[USVString, USVString | Blob]>;
}
}
в мой polyfills.ts
файл, а затем объявив USVString
в @ types / usvstring.d.ts с type USVString = string;
и добавив types = ["../@types/usvstring"]
в tsconfig.app.json
. Я сделал все это, но я все еще получаю ошибку компиляции:
ERROR in src/app/selection/selection.component.ts(38,25): error TS2495: Type 'Iterator<[string, string | Blob]>' is not an array type or a string type.
У кого-нибудь есть здесь идеи как исправить?
Мой исходный код здесь:
<h1>UPLOAD PHOTO</h1>
<input type="file" (change)="onSelectFile($event)">
<button (click)="uploadFiles()">Upload</button>
onSelectFile(event) {
this.selectedFile = <File>event.target.files[0];
}
uploadFiles() {
let fd = new FormData();
fd.append('image',this.selectedFile,this.selectedFile.name);
for (const entry of fd.entries()) { // <-- ENTRIES() NOT RECOGNIZED
console.log(entry);
}
this.http.post("localhost:3000/test-photo",fd)
.subscribe((res) => {
console.log(res);
});
}