我有,我有一个表单file
字段上传的图像。 我需要上传在Amazon S3这一形象。 建设一步一步来,我开始上传本地磁盘上的形象和它现在的工作。
上载在我的实体存在的Page
,因为它是建议测试上传成功之前保存的实体。 我结束了此块的代码
/**
* @ORM\Column(name="objectThumbnail", type="string", length=255, nullable=true)
*/
protected $objectThumbnail;
/**
* This is not a column in the database but it's mapping a field from the form
*
* @Assert\File(maxSize="600000000")
*/
public $file;
...
/**
* @ORM\PrePersist()
* @ORM\PreUpdate()
*/
public function preUpload()
{
if (null !== $this->file) {
// generate a unique filename
$this->objectThumbnail = $this->getGuid().'.'.$this->file->guessExtension();
}
}
/**
* @ORM\PostPersist()
* @ORM\PostUpdate()
*/
public function upload()
{
if (null === $this->file) {
return;
}
// if there is an error when moving the file, an exception will
// be automatically thrown by move(). This will properly prevent
// the entity from being persisted to the database on error
$this->file->move($this->getUploadRootDir(), $this->objectThumbnail);
unset($this->file);
}
/**
* @ORM\PostRemove()
*/
public function removeUpload()
{
if ($file = $this->getAbsolutePath()) {
unlink($file);
}
}
这是完美的,它的工作就像一个魅力。 只是Symfony的(2.1.7)的尖叫,因为公众范围的file
属性,没有重大。
现在我需要的S3层整合。 对于我想我会使用Gaufrette
和StreamWrapper
。
现在我在努力寻找什么是做到这一点的最好办法。 如何获得访问Filesystem
中的实体服务? 是不是真的干净做这样的吗? 这感觉有点别扭给我处理在实体上S3图像的上传。
你会如何建议办呢?
干杯,
马克西姆