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

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

1

Решение

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

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

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

0

Другие решения

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

use Hshn\Base64EncodedFile\HttpFoundation\File\Base64EncodedFile;
use Hshn\Base64EncodedFile\HttpFoundation\File\UploadedBase64EncodedFile;

$uploadedFile = new UploadedBase64EncodedFile(
new Base64EncodedFile($base64String)
);
$uploadableEntity->setFile($uploadedFile);
0

По вопросам рекламы [email protected]