mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-21 09:35:49 +02:00
Try to detect if an external attachment is an image or not.
Before we assumed that it is a picture in all cases.
This commit is contained in:
parent
1c222ff293
commit
15ba6572df
2 changed files with 14 additions and 3 deletions
|
@ -144,9 +144,17 @@ abstract class Attachment extends AbstractNamedDBElement
|
||||||
*/
|
*/
|
||||||
public function isPicture(): bool
|
public function isPicture(): bool
|
||||||
{
|
{
|
||||||
//We can not check if an external link is a picture, so just assume this is false
|
|
||||||
if ($this->isExternal()) {
|
if ($this->isExternal()) {
|
||||||
return true;
|
//Check if we can extract a file extension from the URL
|
||||||
|
$extension = pathinfo(parse_url($this->path, PHP_URL_PATH) ?? '', PATHINFO_EXTENSION);
|
||||||
|
|
||||||
|
//If no extension is found or it is known picture extension, we assume that this is a picture extension
|
||||||
|
if ($extension === '' || in_array(strtolower($extension), static::PICTURE_EXTS, true)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Otherwise we assume that the file is not a picture
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$extension = pathinfo($this->getPath(), PATHINFO_EXTENSION);
|
$extension = pathinfo($this->getPath(), PATHINFO_EXTENSION);
|
||||||
|
|
|
@ -182,8 +182,11 @@ class AttachmentTest extends TestCase
|
||||||
return [
|
return [
|
||||||
['%MEDIA%/foo/bar.txt', false],
|
['%MEDIA%/foo/bar.txt', false],
|
||||||
['https://test.de/picture.jpeg', true],
|
['https://test.de/picture.jpeg', true],
|
||||||
|
['https://test.de/picture.png?test=fdsj&width=34', true],
|
||||||
|
['https://invalid.invalid/file.txt', false],
|
||||||
|
['http://infsf.inda/file.zip?test', false],
|
||||||
['https://test.de', true],
|
['https://test.de', true],
|
||||||
['http://test.de/google.de', true],
|
['https://invalid.com/invalid/pic', true],
|
||||||
['%MEDIA%/foo/bar.jpeg', true],
|
['%MEDIA%/foo/bar.jpeg', true],
|
||||||
['%MEDIA%/foo/bar.webp', true],
|
['%MEDIA%/foo/bar.webp', true],
|
||||||
['%MEDIA%/foo', false],
|
['%MEDIA%/foo', false],
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue