Я хочу загрузить файл PDF с угловым и php api.Я пытался заставить предложенное здесь решение ( File Upload In Angular? ) работать с php api.
Я тестировал код, но он не работает.
это код в html-файле
<input type="file" (change)="fileChange($event)" placeholder="Upload file" accept=".pdf,.doc,.docx">
Вот код ts, я немного его изменил по сравнению с кодом в URL, который я положил выше, чтобы он работалс HttpClient
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 HttpHeaders();
/** 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 });
const options = {
params: new HttpParams(),
headers: headers
};
this.Http.post(`http://localhost/Back/ajouterPublication.php`, formData, options)
.subscribe(
data => console.log('success'),
error => console.log(error)
)
}
}
и вот php api
<?php
header("Access-Control-Allow-Origin: *");
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
echo json_encode(array('status' => false));
exit;
}
$path = 'http://localhost//fichier';
if (isset($_FILES['file'])) {
$generatedName ='abc.pdf';
$filePath = $path.$generatedName;
if (!is_writable($path)) {
echo json_encode(array(
'status' => false,
'msg' => 'Destination directory not writable.'
));
exit;
}
if (move_uploaded_file($_FILES['file']['tmp_name'], $filePath)) {
echo json_encode(array(
'status' => true,
'originalName' => $originalName,
'generatedName' => $generatedName
));
}
}
else {
echo json_encode(
array('status' => false, 'msg' => 'No file uploaded.')
);
exit;
}
?>
Я использую угловой 7.2.1