Я использую 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);