Как Сделать чтобы имя файла отправилось?
public function add(): void
{
if ($this->user === null) {
throw new UnauthorizedException();
}
if ($this->user->getRole() == 'user') {
throw new ForbiddenException();
}elseif($this->user->getRole() == 'admin'){
if (!empty($_POST)) {
try {
$article = Article::createFromArray($_POST, $this->user);
} catch (InvalidArgumentException $e) {
$this->view->render('add.tpl', ['error' => $e->getMessage()]);
return;
}
header('Location: /articles/' . $article->getId(), true, 302);
exit();
}
Форма
<h1>Создание новой статьи</h1>
<?php if(!empty($error)): ?>
<div style="color: red;"><?= $error ?></div>
<?php endif; ?>
<form action="/admin/articles/add" method="post" enctype='multipart/form-data'>
<label for="name">Название статьи</label><br>
<input type="text" name="title" id="title" value="<?= $_POST['title'] ?? '' ?>" size="50"><br>
<br>
<label for="text">Описание статьи</label><br>
<textarea name="info" id="info" rows="10" cols="80"><?= $_POST['info'] ?? '' ?></textarea><br>
<br>
<label for="text">Текст статьи</label><br>
<textarea name="full" id="full" rows="10" cols="80"><?= $_POST['full'] ?? '' ?></textarea><br>
<br>
<label for="text">Изоброжение</label><br>
<input id="img" name="img" type="file"><?= $_POST['img'] ?? '' ?>
<input type="submit" value="Создать">
</form>
Ответы (1 шт):
Автор решения: e_v_medvedev
→ Ссылка
При первой загрузке файла с клиента на сервер, он сбрасывается во временный файл, откуда его потом надо переместить в нужное вам место. См. https://www.php.net/manual/ru/function.move-uploaded-file.php