var fd = new FormData();
fd.append('file', data.target.files[0]);
return this.http.post(url), fd).map().catch();
AngularJSを使用すると動作しますが、同じ方法で使用している場合は角度4になります。アップロード中にディスクエラーが発生します。 。アップロードされたExcelファイルをAngular 4を使用してC#Post APIに送信する方法
var fd = new FormData();
fd.append('file', data.target.files[0]);
return this.http.post(url), fd).map().catch();
AngularJSを使用すると動作しますが、同じ方法で使用している場合は角度4になります。アップロード中にディスクエラーが発生します。 。アップロードされたExcelファイルをAngular 4を使用してC#Post APIに送信する方法
public importMassUpdateExcel(file: FormData, id): Observable<any> { const headers = new Headers({ 'Authorization': '',//authorization token 'Content-Type': 'application/json; charset=UTF-8'// }); const options = new RequestOptions({ headers: headers }); return this.http .post(url, file, options) .map() .catch(); }
ここでは、FormData経由でAPIにファイルをアップロードする例を示します。
upload.service.ts
などのサービスファイルでは、POSTメソッドを使用してファイルをアップロードする機能を作成する必要があります。ここでは、この関数の例です。
getUploadHeaders() {
let headers = new Headers({'Accept': 'application/json'});
headers.delete('Content-Type');
return headers;
}
addNewPost(newPost: FormData): Observable<FormData> {
const endpoint = 'https://yourApiUrl.com';
return this.http
.post(endpoint, newPost, { headers: this.getUploadHeaders() })
.catch((e) => this.handleError(e));
}
そして今、あなたは、たとえばupload.component.ts
のために、あなたのコンポーネントにアップロード機能を作成する必要があります。 FormDataを使用したアップロード機能の例を次に示します。
fileToUpload: File = null;
constructor(private uploadService: UploadService) { }
handleFileInput(files: FileList) {
this.fileToUpload = files.item(0);
}
saveFileToApi() {
const saveForm: FormData = new FormData();
if (this.fileToUpload) {
saveForm.append('fileFieldNameOnYourApi', this.fileToUpload, this.fileToUpload.name);
}
this.uploadService.addNewPost(saveForm).subscribe(() => {
console.log('Upload success!');
}, error => {
console.log('Upload failed!');
});
}
FormData経由でファイルをアップロードするには、APIエンドポイントのpropertyName、このファイルのファイル名、および3つのパラメータが必要です。 そして、あなたのupload.component.html
に、あなたがこのような形持っている必要がありますいるFormDataの詳細について
<form (ngSubmit)="onSubmit()">
<label for="fileField">Chose file to upload</label>
<input type="file"
id="fileField"
name="fileField"
(change)="handleFileInput($event.target.files)">
<button type="submit">Speichern</button>
</form>
)がthisとFormData.append(詳細については、を読んをお読みください。サービスで
はあなたにグレゴールDoroschenkoありがとうございます。あなたの答えは理解するのに役立ちましたが、このメソッドを試してみると、「Access-Control-Allow-Origin」ヘッダーが要求されたリソースに存在しています。このエラーとディスクエラーのため、私は認証とコンテンツタイプを作り直しています。 –