Я пытаюсь загрузить изображение по пути: {project} / public / img / circuitits, используя vichuploaderBundle.
Я следил за его документацией на github: https://github.com/dustin10/VichUploaderBundle/blob/master/docs/index.md
Ситуация такова: у меня есть форма с VichImageType
, и когда я отправляю указанную форму с изображением, я получаю следующее:
thumbnailFile: Symfony\Component\HttpFoundation\File\UploadedFile {#91 ▼
-test: false
-originalName: "meme.jpg"
-mimeType: "image/jpeg"
-error: 0
path: "/tmp"
filename: "phpomKjXK"
basename: "phpomKjXK"
pathname: "/tmp/phpomKjXK"
extension: ""
realPath: "/tmp/phpomKjXK"
aTime: 2020-11-26 16:22:10
mTime: 2020-11-26 16:22:10
cTime: 2020-11-26 16:22:10
inode: 262126
size: 79694
perms: 0100600
owner: 1000
group: 1000
type: "file"
writable: true
readable: true
executable: false
file: true
dir: false
link: false
}
Я использую это отображение (vich_uploader.yaml):
vich_uploader:
db_driver: orm
mappings:
circuits:
uri_prefix: /img/circuits
upload_destination: '%kernel.project_dir%/public/img/circuits'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
Вот фрагменты кода, связанные с изображением из моей сущности:
/**
* @ORM\Entity(repositoryClass=CircuitRepository::class)
* @Vich\Uploadable
*/
class Circuit
{
/**
* @ORM\Column(type="string", length=255)
*/
private $thumbnail;
/**
* @Vich\UploadableField(mapping="circuits", fileNameProperty="thumbnail")
* @var File|null
*/
private $thumbnailFile;
/**
* @var \DateTime
*/
private $updated_at;
public function getThumbnail(): ?string
{
return $this->thumbnail;
}
public function setThumbnail(string $thumbnail): self
{
$this->thumbnail = $thumbnail;
return $this;
}
/**
* @return File
*/
public function getThumbnailFile(): ?File
{
return $this->thumbnailFile;
}
/**
* @param File $thumbnailFile
*/
public function setThumbnailFile(?File $thumbnailFile): self
{
$this->thumbnailFile = $thumbnailFile;
if ($this->thumbnailFile instanceof UploadedFile)
$this->updated_at = new \DateTime('now');
return $this;
}
}
Наконец, вот часть моей формы, которая обрабатывает ввод изображения:
->add('thumbnailFile', VichImageType::class, [
'label' => 'Vignette',
'allow_delete' => false,
'download_uri' => false,
'image_uri' => false,
'required' => true,
])
Кто-нибудь знает, почему файлы, которые я пытаюсь загрузить, не сохраняются в моей папке / public / img / circuit?
Спасибо.
РЕДАКТИРОВАТЬ: Когда я создаю свой объект, изображение загружается и сохраняется в порядке, но однажды я пытаюсь изменить его и переопределить существующее изображение объекта другим, он удаляет его из объекта, но не загружает новый.
$updated_at
не является столбцом, я думаю, поэтому он не обновляется доктриной и, соответственно, не запускает слушателей vich_uploader. - person Flash   schedule 01.12.2020