1

我正在使用 VichUploaderBundle 将图像上传到 symfony-2 中的 AmazonS3。

我已遵循此文档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();
}

客户端(这是一个 Web 应用程序)将以 base_64 格式发送图像。所以我不明白如何从该字符串中获取 FILE 对象?(由于setter方法的参数是FILE)

4

2 回答 2

1

您可以使用hshn/base64-encoded-file库中的UploadedBase64EncodedFile类:

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

$uploadedFile = new UploadedBase64EncodedFile(
    new Base64EncodedFile($base64String)
);
$uploadableEntity->setFile($uploadedFile);
于 2016-10-14T14:41:53.410 回答
0

好的,首先您需要将图像保存到临时文件中 - 这是一个解决方案:How to save a PNG image server-side, from a base64 data string

然后你需要使用该文件创建一个 UploadedFile 的实例,有点像这个例子:https ://github.com/dustin10/VichUploaderBundle/issues/203

然后将此 UploadedFile 发送到您的 setFile() 方法。

于 2015-10-15T10:15:15.780 回答