mirror of
https://github.com/phpbb/phpbb.git
synced 2025-07-25 11:01:48 +02:00
Merge pull request #3524 from marc1706/ticket/8672
[ticket/8672] Add class for retrieving imagesize without download
This commit is contained in:
@@ -402,28 +402,28 @@ class filespec
|
||||
{
|
||||
$this->width = $this->height = 0;
|
||||
|
||||
if (($this->image_info = @getimagesize($this->destination_file)) !== false)
|
||||
{
|
||||
$this->width = $this->image_info[0];
|
||||
$this->height = $this->image_info[1];
|
||||
// Get imagesize class
|
||||
$imagesize = new \fastImageSize\fastImageSize();
|
||||
|
||||
if (!empty($this->image_info['mime']))
|
||||
{
|
||||
$this->mimetype = $this->image_info['mime'];
|
||||
}
|
||||
$this->image_info = $imagesize->getImageSize($this->destination_file, $this->mimetype);
|
||||
|
||||
if ($this->image_info !== false)
|
||||
{
|
||||
$this->width = $this->image_info['width'];
|
||||
$this->height = $this->image_info['height'];
|
||||
|
||||
// Check image type
|
||||
$types = fileupload::image_types();
|
||||
|
||||
if (!isset($types[$this->image_info[2]]) || !in_array($this->extension, $types[$this->image_info[2]]))
|
||||
if (!isset($types[$this->image_info['type']]) || !in_array($this->extension, $types[$this->image_info['type']]))
|
||||
{
|
||||
if (!isset($types[$this->image_info[2]]))
|
||||
if (!isset($types[$this->image_info['type']]))
|
||||
{
|
||||
$this->error[] = sprintf($user->lang['IMAGE_FILETYPE_INVALID'], $this->image_info[2], $this->mimetype);
|
||||
$this->error[] = $user->lang('IMAGE_FILETYPE_INVALID', $this->image_info['type'], $this->mimetype);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error[] = sprintf($user->lang['IMAGE_FILETYPE_MISMATCH'], $types[$this->image_info[2]][0], $this->extension);
|
||||
$this->error[] = $user->lang('IMAGE_FILETYPE_MISMATCH', $types[$this->image_info['type']][0], $this->extension);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -339,22 +339,23 @@ class bbcode_firstpass extends bbcode
|
||||
|
||||
if ($config['max_' . $this->mode . '_img_height'] || $config['max_' . $this->mode . '_img_width'])
|
||||
{
|
||||
$stats = @getimagesize(htmlspecialchars_decode($in));
|
||||
$imagesize = new \fastImageSize\fastImageSize();
|
||||
$size_info = $imagesize->getImageSize(htmlspecialchars_decode($in));
|
||||
|
||||
if ($stats === false)
|
||||
if ($size_info === false)
|
||||
{
|
||||
$error = true;
|
||||
$this->warn_msg[] = $user->lang['UNABLE_GET_IMAGE_SIZE'];
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($config['max_' . $this->mode . '_img_height'] && $config['max_' . $this->mode . '_img_height'] < $stats[1])
|
||||
if ($config['max_' . $this->mode . '_img_height'] && $config['max_' . $this->mode . '_img_height'] < $size_info['height'])
|
||||
{
|
||||
$error = true;
|
||||
$this->warn_msg[] = $user->lang('MAX_IMG_HEIGHT_EXCEEDED', (int) $config['max_' . $this->mode . '_img_height']);
|
||||
}
|
||||
|
||||
if ($config['max_' . $this->mode . '_img_width'] && $config['max_' . $this->mode . '_img_width'] < $stats[0])
|
||||
if ($config['max_' . $this->mode . '_img_width'] && $config['max_' . $this->mode . '_img_width'] < $size_info['width'])
|
||||
{
|
||||
$error = true;
|
||||
$this->warn_msg[] = $user->lang('MAX_IMG_WIDTH_EXCEEDED', (int) $config['max_' . $this->mode . '_img_width']);
|
||||
|
Reference in New Issue
Block a user