1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-03-24 09:30:34 +01:00

[ticket/15276] Use mimetype guesser

PHPBB3-15276
This commit is contained in:
Rubén Calvo 2017-08-11 00:50:19 +02:00
parent 09856aeb26
commit c3e9aa1c18
4 changed files with 15 additions and 15 deletions

View File

@ -39,6 +39,7 @@ services:
arguments:
- '@filesystem'
- '@upload_imagesize'
- '@mimetype.guesser'
- '%core.root_path%'
tags:
- { name: storage.adapter }

View File

@ -18,6 +18,7 @@ use phpbb\storage\exception\exception;
use phpbb\filesystem\exception\filesystem_exception;
use phpbb\filesystem\filesystem;
use phpbb\filesystem\helper as filesystem_helper;
use phpbb\mimetype\guesser;
use FastImageSize\FastImageSize;
/**
@ -33,12 +34,19 @@ class local implements adapter_interface, stream_interface
protected $filesystem;
/**
* Filesystem component
* FastImageSize
*
* @var \FastImageSize\FastImageSize
*/
protected $imagesize;
/**
* Mimetype Guesser component
*
* @var \phpbb\mimetype\guesser
*/
protected $mimetype_guesser;
/**
* @var string path
*/
@ -52,10 +60,11 @@ class local implements adapter_interface, stream_interface
/**
* Constructor
*/
public function __construct(filesystem $filesystem, FastImageSize $imagesize, $phpbb_root_path)
public function __construct(filesystem $filesystem, FastImageSize $imagesize, guesser $mimetype_guesser, $phpbb_root_path)
{
$this->filesystem = $filesystem;
$this->imagesize = $imagesize;
$this->mimetype_guesser = $mimetype_guesser;
$this->phpbb_root_path = $phpbb_root_path;
}
@ -275,17 +284,7 @@ class local implements adapter_interface, stream_interface
*/
public function file_mimetype($path)
{
if (class_exists('finfo'))
{
$finfo = new \finfo(FILEINFO_MIME_TYPE);
$mimetype = $finfo->file($this->root_path . $path);
}
else
{
$mimetype = mime_content_type($this->root_path . $path);
}
return ['mimetype' => $mimetype];
return ['mimetype' => $this->mimetype_guesser->guess($this->root_path . $path)];
}
/**

View File

@ -36,7 +36,7 @@ class phpbb_avatar_manager_test extends \phpbb_database_test_case
->will($this->returnArgument(0));
$filesystem = new \phpbb\filesystem\filesystem();
$adapter = new \phpbb\storage\adapter\local($filesystem, new \FastImageSize\FastImageSize(), $phpbb_root_path);
$adapter = new \phpbb\storage\adapter\local($filesystem, new \FastImageSize\FastImageSize(), new \phpbb\mimetype\guesser(array(new \phpbb\mimetype\extension_guesser)), $phpbb_root_path);
$adapter->configure(['path' => 'images/avatars/upload']);
$adapter_factory_mock = $this->createMock('\phpbb\storage\adapter_factory');
$adapter_factory_mock->expects($this->any())

View File

@ -24,7 +24,7 @@
$filesystem = new \phpbb\filesystem\filesystem();
$phpbb_root_path = getcwd() . DIRECTORY_SEPARATOR;
$this->adapter = new \phpbb\storage\adapter\local($filesystem, new \FastImageSize\FastImageSize(), $phpbb_root_path);
$this->adapter = new \phpbb\storage\adapter\local($filesystem, new \FastImageSize\FastImageSize(), new \phpbb\mimetype\guesser(array(new \phpbb\mimetype\extension_guesser)), $phpbb_root_path);
$this->adapter->configure(['path' => 'test_path']);
$this->path = $phpbb_root_path . 'test_path/';