【发布时间】:2018-04-16 10:08:44
【问题描述】:
我创建了一个简单的表单,其中包含三个字段名称、url 和 angular 5 中的文件。
我正在提交数据以保存在 laravel 中创建的 api,由于文件输入字段,这里我没有在后端接收数据。
如果我从请求中删除文件输入并提交表单,它工作正常。
这是我用 typescript 和 angular 编写的代码
onSelectFile(event: any) { // called each time file input changes
if (event.target.files && event.target.files[0]) {
var reader = new FileReader();
let file:File = event.target.files[0];
this.bannerImage = event.target.files[0];
reader.readAsDataURL(event.target.files[0]); // read file as data url
reader.onload = (event: any) => { // called once readAsDataURL is completed
this.bannerImagePreview = event.target.result;
this.bannerFileName = file.name;
}
}
}
这里是调用上传服务的代码
uploadBannerCreative(event) {
this.loading = true;
let formData:FormData = new FormData();
formData.append("name", this.bannerCreativeName);
formData.append("click_url", this.bannerCreativeURL);
formData.append("file", this.bannerImage,"test");
let headers = new Headers();
headers.append('Content-Type', undefined);
headers.append('Accept', 'application/json');
headers.append('Authorization', 'Bearer ' + JSON.parse(localStorage.getItem('_token')));
this._uploadCreativeService.uploadBannerCreative(formData, headers).subscribe(
data => {
this.loading = false;
},
error => {
this.loading = false;
}
);
}
这里是上传文件的服务
uploadBannerCreative(data, headers) {
return this.http.post('http://localhost/api/campaign/upload-image', (data), { headers: headers })
.map((response: Response) => {
return response;
});
}
请帮我找出问题
【问题讨论】:
-
请不要在header中发送accept和content-type参数
-
试过它只是保留 headers.append('Authorization', 'Bearer' + JSON.parse(localStorage.getItem('_token')));但没有工作
-
我正在发布我的代码
-
是的,请分享一下
标签: javascript angular typescript angular5