我知道这是一个非常普遍的问题,但是我无法在Angular 2中上传文件。
1)http://valor-software.com/ng2-file-upload/和
2)http://ng2-uploader.com/home
...但是失败了。有没有人在Angular中上传文件?您使用什么方法?怎么做?如果提供任何示例代码或演示链接,将不胜感激。
我知道这是一个非常普遍的问题,但是我无法在Angular 2中上传文件。
1)http://valor-software.com/ng2-file-upload/和
2)http://ng2-uploader.com/home
...但是失败了。有没有人在Angular中上传文件?您使用什么方法?怎么做?如果提供任何示例代码或演示链接,将不胜感激。
Answers:
Angular 2为上传文件提供了良好的支持。无需第三方库。
<input type="file" (change)="fileChange($event)" placeholder="Upload file" accept=".pdf,.doc,.docx">
fileChange(event) {
let fileList: FileList = event.target.files;
if(fileList.length > 0) {
let file: File = fileList[0];
let formData:FormData = new FormData();
formData.append('uploadFile', file, file.name);
let headers = new Headers();
/** In Angular 5, including the header Content-Type can invalidate your request */
headers.append('Content-Type', 'multipart/form-data');
headers.append('Accept', 'application/json');
let options = new RequestOptions({ headers: headers });
this.http.post(`${this.apiEndPoint}`, formData, options)
.map(res => res.json())
.catch(error => Observable.throw(error))
.subscribe(
data => console.log('success'),
error => console.log(error)
)
}
}
使用@ angular / core“:”〜2.0.0“和@ angular / http:”〜2.0.0“
headers.append('enctype', 'multipart/form-data');
有用,除了-我必须在这条线上工作- (用“ enctype”代替“ Content-Type”)。也许这取决于服务器端代码。(即api)