Add heic support
This commit is contained in:
parent
820a725517
commit
09919a1c29
|
@ -16,6 +16,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"require": {
|
"require": {
|
||||||
|
"ext-imagick": ">=3.6.0",
|
||||||
"spatie/laravel-medialibrary": "^10.7",
|
"spatie/laravel-medialibrary": "^10.7",
|
||||||
"laravel/framework": "^9.50",
|
"laravel/framework": "^9.50",
|
||||||
"spatie/laravel-data": "^3.1",
|
"spatie/laravel-data": "^3.1",
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
namespace Zoomyboy\MedialibraryHelper;
|
namespace Zoomyboy\MedialibraryHelper;
|
||||||
|
|
||||||
|
use Imagick;
|
||||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||||
use Illuminate\Http\JsonResponse;
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
|
@ -160,6 +161,14 @@ class MediaController
|
||||||
$tmpFile = tempnam(sys_get_temp_dir(), 'media-library');
|
$tmpFile = tempnam(sys_get_temp_dir(), 'media-library');
|
||||||
file_put_contents($tmpFile, $binaryData);
|
file_put_contents($tmpFile, $binaryData);
|
||||||
|
|
||||||
|
$i = (new Imagick());
|
||||||
|
$i->readImage($tmpFile);
|
||||||
|
|
||||||
|
if ($i->getImageFormat() === 'HEIC') {
|
||||||
|
$i->setFormat('jpg');
|
||||||
|
$i->writeImage($tmpFile);
|
||||||
|
}
|
||||||
|
|
||||||
if (null !== $maxWidth && 'image/jpeg' === mime_content_type($tmpFile)) {
|
if (null !== $maxWidth && 'image/jpeg' === mime_content_type($tmpFile)) {
|
||||||
Image::load($tmpFile)->width($maxWidth)->save();
|
Image::load($tmpFile)->width($maxWidth)->save();
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,22 @@ test('it uploads a single file to a single file collection', function () {
|
||||||
$response->assertJsonMissingPath('model_id');
|
$response->assertJsonMissingPath('model_id');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('it uploads heig image', function () {
|
||||||
|
$this->auth()->registerModel();
|
||||||
|
$post = $this->newPost();
|
||||||
|
$content = base64_encode($this->getFile('heic.jpg', 'heic.jpg')->getContent());
|
||||||
|
|
||||||
|
$this->postJson('/mediaupload', [
|
||||||
|
'model' => 'post',
|
||||||
|
'id' => $post->id,
|
||||||
|
'collection' => 'conversionsWithDefault',
|
||||||
|
'payload' => [
|
||||||
|
'content' => $content,
|
||||||
|
'name' => 'beispiel bild.jpg',
|
||||||
|
],
|
||||||
|
])->assertStatus(201);
|
||||||
|
});
|
||||||
|
|
||||||
test('it uploads a single image to a single file collection', function () {
|
test('it uploads a single image to a single file collection', function () {
|
||||||
$this->auth()->registerModel();
|
$this->auth()->registerModel();
|
||||||
$post = $this->newPost();
|
$post = $this->newPost();
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue