Загрузите изображение в Amazon S3 с помощью VichUploaderBundle

Я использую VichUploaderBundle для загрузки изображений в AmazonS3 в symfony-2.

Я выполнил эту документацию https://github.com/dustin10/VichUploaderBundle/blob/master/Resources/doc/index.md и создал класс сущности.

Таким образом, у меня есть метод setter в сущности

/** * @param UploadedFile $file */ public function setFile(File $file = null) { $this->file = $file; $this->updated = new \DateTime(); } 

Клиент (это веб-приложение) будет отправлять изображение в формате base_64. Поэтому я не понимаю, как я получу объект FILE из этой строки? (Так как параметр метода сеттера FILE)

Итак, сначала вам нужно сохранить изображение во временном файле – вот решение для этого: Как сохранить PNG-изображение на стороне сервера, из строки данных base64

Затем вам нужно создать экземпляр UploadedFile, используя этот файл, вроде этого примера: https://github.com/dustin10/VichUploaderBundle/issues/203

Затем отправьте этот UploadedFile на ваш метод setFile ().

Вы можете использовать класс UploadedBase64EncodedFile из библиотеки файлов с кодировкой hshn / base64 :

 use Hshn\Base64EncodedFile\HttpFoundation\File\Base64EncodedFile; use Hshn\Base64EncodedFile\HttpFoundation\File\UploadedBase64EncodedFile; $uploadedFile = new UploadedBase64EncodedFile( new Base64EncodedFile($base64String) ); $uploadableEntity->setFile($uploadedFile);