|
|
|
|
@ -6487,9 +6487,10 @@ class DocumentManager |
|
|
|
|
$extension = pathinfo($fileName, PATHINFO_EXTENSION); |
|
|
|
|
$media->setContext('default'); |
|
|
|
|
|
|
|
|
|
$provider = 'sonata.media.provider.image'; |
|
|
|
|
if (!in_array($extension, ['jpeg', 'jpg', 'gif', 'png'])) { |
|
|
|
|
$provider = 'sonata.media.provider.file'; |
|
|
|
|
$isImage = in_array($extension, ['jpeg', 'jpg', 'gif', 'png']); |
|
|
|
|
if ($isImage) { |
|
|
|
|
$provider = 'sonata.media.provider.image'; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$media->setProviderName($provider); |
|
|
|
|
@ -6499,11 +6500,23 @@ class DocumentManager |
|
|
|
|
$file = $content; |
|
|
|
|
$media->setSize($file->getSize()); |
|
|
|
|
} else { |
|
|
|
|
// $path points to a file in the directory |
|
|
|
|
if (file_exists($path) && !is_dir($path)) { |
|
|
|
|
$file = $path; |
|
|
|
|
$media->setSize(filesize($file)); |
|
|
|
|
if ($isImage) { |
|
|
|
|
$size = getimagesize($file); |
|
|
|
|
$media->setWidth($size[0]); |
|
|
|
|
$media->setHeight($size[1]); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
// We get the content and create a file |
|
|
|
|
$handle = tmpfile(); |
|
|
|
|
fwrite($handle, $content); |
|
|
|
|
$file = new \Sonata\MediaBundle\Extra\ApiMediaFile($handle); |
|
|
|
|
$file->setMimetype($media->getContentType()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$media->setBinaryContent($file); |
|
|
|
|
$mediaManager->save($media, true); |
|
|
|
|
|