Я не знаю почему, но когда я отправляю файл на сервер, текущая страница перезагружается в то же время … Это происходит и с почтальоном.
Я использую копию официального документа.
И я использую SlimFramework:
Маршрут:
$app->post('/api/file/upload', FileController::class . ':add');
Контроллер:
public function add (Request $request, Response $response, $args) {
$imagepath = '';
$files = $request->getUploadedFiles();
$newfile = $files['file'];
if($newfile->getError() === UPLOAD_ERR_OK) {
$uploadFilename = $newfile->getClientFilename();
$newfile->moveTo('../public/src/assets/img/' . $uploadFilename);
$imagepath = "assets/img/" . $uploadFilename;
}
$addIconQuery = 'UPDATE categories SET icon = :icon WHERE id_category = :id';
$stmt = $this->container->get('db')->prepare($addIconQuery);
$stmt->execute([
':id' => 21,
':icon' => $imagepath
]);
}
Файл правильно загружен и путь добавлен в базу данных.
Любая идея ?
ОБНОВИТЬ
<div class="field">
<input type="file" name="file" ng2FileSelect [uploader]="uploader">
<button type="button" class="btn btn-success btn-xs" (click)="uploader.uploadAll()">
<span class="glyphicon glyphicon-upload"></span> Upload
</button>
</div>
В компоненте
public uploader: FileUploader = new FileUploader({ url: Config.apiUrl + 'api/file/upload' });
ngOnInit() {
this.uploader.onAfterAddingFile = (file) => { file.withCredentials = false; };
this.uploader.onCancelItem = (item:any, response: any, status: any, header:any) => {
console.log('ImageUpload:uploaded:', item, status, response);
}
}
Задача ещё не решена.
Других решений пока нет …