webp images support
This commit is contained in:
@@ -42,6 +42,7 @@ class Image extends \Espo\Core\EntryPoints\Base
|
||||
'image/jpeg',
|
||||
'image/png',
|
||||
'image/gif',
|
||||
'image/webp',
|
||||
];
|
||||
|
||||
protected $imageSizes = [
|
||||
@@ -134,6 +135,9 @@ class Image extends \Espo\Core\EntryPoints\Base
|
||||
case 'image/gif':
|
||||
imagegif($targetImage);
|
||||
break;
|
||||
case 'image/webp':
|
||||
imagewebp($targetImage);
|
||||
break;
|
||||
}
|
||||
$contents = ob_get_contents();
|
||||
ob_end_clean();
|
||||
@@ -214,6 +218,10 @@ class Image extends \Espo\Core\EntryPoints\Base
|
||||
$sourceImage = imagecreatefromgif($filePath);
|
||||
imagecopyresampled($targetImage, $sourceImage, 0, 0, 0, 0, $targetWidth, $targetHeight, $originalWidth, $originalHeight);
|
||||
break;
|
||||
case 'image/webp':
|
||||
$sourceImage = imagecreatefromwebp($filePath);
|
||||
imagecopyresampled($targetImage, $sourceImage, 0, 0, 0, 0, $targetWidth, $targetHeight, $originalWidth, $originalHeight);
|
||||
break;
|
||||
}
|
||||
|
||||
if (in_array($fileType, $this->fixOrientationFileTypeList)) {
|
||||
|
||||
@@ -44,6 +44,13 @@ class Attachment extends Record
|
||||
|
||||
protected $inlineAttachmentFieldTypeList = ['wysiwyg'];
|
||||
|
||||
protected $imageTypeList = [
|
||||
'image/png',
|
||||
'image/jpeg',
|
||||
'image/gif',
|
||||
'image/webp',
|
||||
];
|
||||
|
||||
public function upload($fileData)
|
||||
{
|
||||
if (!$this->getAcl()->checkScope('Attachment', 'create')) {
|
||||
@@ -322,7 +329,8 @@ class Attachment extends Record
|
||||
'png' => 'image/png',
|
||||
'jpg' => 'image/jpeg',
|
||||
'jpeg' => 'image/jpeg',
|
||||
'gif' => 'image/gif'
|
||||
'gif' => 'image/gif',
|
||||
'webp' => 'image/webp',
|
||||
];
|
||||
|
||||
$extension = preg_replace('#\?.*#', '', pathinfo($url, \PATHINFO_EXTENSION));
|
||||
@@ -334,7 +342,7 @@ class Attachment extends Record
|
||||
|
||||
if (!$type) return;
|
||||
|
||||
if (!in_array($type, ['image/png', 'image/jpeg', 'image/gif'])) {
|
||||
if (!in_array($type, $this->imageTypeList)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -56,6 +56,7 @@ Espo.define('views/fields/attachment-multiple', 'views/fields/base', function (D
|
||||
'image/jpeg',
|
||||
'image/png',
|
||||
'image/gif',
|
||||
'image/webp',
|
||||
],
|
||||
|
||||
validations: ['ready', 'required'],
|
||||
@@ -284,11 +285,8 @@ Espo.define('views/fields/attachment-multiple', 'views/fields/base', function (D
|
||||
|
||||
var preview = name;
|
||||
|
||||
switch (type) {
|
||||
case 'image/png':
|
||||
case 'image/jpeg':
|
||||
case 'image/gif':
|
||||
preview = '<img src="' + this.getImageUrl(id, 'small') + '" title="' + name + '">';
|
||||
if (~this.previewTypeList.indexOf(type)) {
|
||||
preview = '<img src="' + this.getImageUrl(id, 'small') + '" title="' + name + '">';
|
||||
}
|
||||
|
||||
return preview;
|
||||
@@ -490,11 +488,8 @@ Espo.define('views/fields/attachment-multiple', 'views/fields/base', function (D
|
||||
},
|
||||
|
||||
isTypeIsImage: function (type) {
|
||||
switch (type) {
|
||||
case 'image/png':
|
||||
case 'image/jpeg':
|
||||
case 'image/gif':
|
||||
return true;
|
||||
if (~this.previewTypeList.indexOf(type)) {
|
||||
return true;
|
||||
}
|
||||
return false
|
||||
},
|
||||
|
||||
@@ -46,6 +46,7 @@ Espo.define('views/fields/file', 'views/fields/link', function (Dep) {
|
||||
'image/jpeg',
|
||||
'image/png',
|
||||
'image/gif',
|
||||
'image/webp',
|
||||
],
|
||||
|
||||
defaultType: false,
|
||||
@@ -247,11 +248,8 @@ Espo.define('views/fields/file', 'views/fields/link', function (Dep) {
|
||||
name = Handlebars.Utils.escapeExpression(name);
|
||||
var preview = name;
|
||||
|
||||
switch (type) {
|
||||
case 'image/png':
|
||||
case 'image/jpeg':
|
||||
case 'image/gif':
|
||||
preview = '<a data-action="showImagePreview" data-id="' + id + '" href="' + this.getImageUrl(id) + '"><img src="'+this.getBasePath()+'?entryPoint=image&size='+this.previewSize+'&id=' + id + '" class="image-preview"></a>';
|
||||
if (~this.previewTypeList.indexOf(type)) {
|
||||
preview = '<a data-action="showImagePreview" data-id="' + id + '" href="' + this.getImageUrl(id) + '"><img src="'+this.getBasePath()+'?entryPoint=image&size='+this.previewSize+'&id=' + id + '" class="image-preview"></a>';
|
||||
}
|
||||
return preview;
|
||||
},
|
||||
@@ -260,11 +258,8 @@ Espo.define('views/fields/file', 'views/fields/link', function (Dep) {
|
||||
name = Handlebars.Utils.escapeExpression(name);
|
||||
var preview = name;
|
||||
|
||||
switch (type) {
|
||||
case 'image/png':
|
||||
case 'image/jpeg':
|
||||
case 'image/gif':
|
||||
preview = '<img src="' + this.getImageUrl(id, 'small') + '" title="' + name + '">';
|
||||
if (~this.previewTypeList.indexOf(type)) {
|
||||
preview = '<img src="' + this.getImageUrl(id, 'small') + '" title="' + name + '">';
|
||||
}
|
||||
|
||||
return preview;
|
||||
|
||||
Reference in New Issue
Block a user