Я использую VichUploaderBundle для загрузки изображений в AmazonS3 в symfony-2.
Я следовал этой документации https://github.com/dustin10/VichUploaderBundle/blob/master/Resources/doc/index.md и создал мой класс сущности.
Итак, у меня есть метод установки в сущности
/**
* @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);