Я много искал и нашел подходящий код, который должен работать, но он дает мне ошибку.
Код uploadpic.html :
<input type="file" (change)="fileChange($event)" placeholder="Upload file" accept=".pdf,.doc,.docx,.jpg,.jpeg,.png">
uploadpic.ts следующим образом
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(); headers.append('Content-Type', 'multipart/form-data'); headers.append('Accept', 'application/json'); // let options = new RequestOptions({ headers: headers }); this.http.post(`http://funiks.com/adminv8/products-api/upload.php`, formData, { headers: headers }) .map(res => res.json()) // .catch(error => Observable.throw(error)) .subscribe( data => console.log('success'), error => console.log(error) ) } }
Когда я проверяю, что файл моего сервера не загружается там, и я получаю это сообщение в консоли
SyntaxError: Unexpected token S in JSON at position 0 at Object.parse (<anonymous>) at Response.Body.json (http.es5.js:800) at MapSubscriber.project (operationadd.component.ts:49) at MapSubscriber._next (map.js:77) at MapSubscriber.Subscriber.next (Subscriber.js:89) at XMLHttpRequest.onLoad (http.es5.js:1229) at ZoneDelegate.invokeTask (zone.js:424) at Object.onInvokeTask (core.es5.js:4140) at ZoneDelegate.invokeTask (zone.js:423) at Zone.runTask (zone.js:191)
Мой PHP-код отлично работает с формой html, нужно сделать то же самое с angular2
Вот мой php incase, в котором вы нуждаетесь – https://pastebin.com/ND4G9RJk
Это ответ, который я получаю в своей консоли –