Merge pull request #13648 from annando/picture-upload

Allow to upload pictures up to the allowed system upload size
This commit is contained in:
Hypolite Petovan 2023-11-17 18:06:36 -05:00 committed by GitHub
commit 9901d82fea
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 26 additions and 12 deletions

View File

@ -36,6 +36,7 @@ use Friendica\Core\System;
use Friendica\Core\Theme;
use Friendica\Module\Response;
use Friendica\Network\HTTPException;
use Friendica\Util\Images;
use Friendica\Util\Network;
use Friendica\Util\Profiler;
use Friendica\Util\Strings;
@ -282,7 +283,7 @@ class Page implements ArrayAccess
'$stylesheets' => $this->stylesheets,
// Dropzone
'$max_imagesize' => round(\Friendica\Util\Strings::getBytesFromShorthand($config->get('system', 'maximagesize')) / 1000000, 1),
'$max_imagesize' => round(Images::getMaxUploadBytes() / 1000000, 0),
]) . $this->page['htmlhead'];
}

View File

@ -95,7 +95,7 @@ class Display extends BaseSettings
$user = User::getById($uid);
$theme = trim($request['theme']);
$mobile_theme = trim($request['mobile_theme']);
$mobile_theme = trim($request['mobile_theme'] ?? '');
$enable_smile = (bool)$request['enable_smile'];
$enable = (array)$request['enable'];
$bookmark = (array)$request['bookmark'];

View File

@ -244,22 +244,24 @@ class Images
$filesize = strlen($img_str);
try {
$data = @getimagesizefromstring($img_str);
$data = (array)@getimagesizefromstring($img_str);
} catch (\Exception $e) {
return [];
}
if ($data) {
$image = new Image($img_str);
if ($image->isValid()) {
$data['blurhash'] = $image->getBlurHash();
}
$data['size'] = $filesize;
if (empty($data)) {
return [];
}
return is_array($data) ? $data : [];
$image = new Image($img_str);
if ($image->isValid()) {
$data['blurhash'] = $image->getBlurHash();
}
$data['size'] = $filesize;
return $data;
}
/**
@ -352,4 +354,15 @@ class Images
return '[img=' . $photo . ']' . $description . '[/img]';
}
/**
* Get the maximum possible upload size in bytes
*
* @return integer
*/
public static function getMaxUploadBytes(): int
{
$upload_size = ini_get('upload_max_filesize') ?: DI::config()->get('system', 'maximagesize');
return Strings::getBytesFromShorthand($upload_size);
}
}