Update MediaStorageService, improve head header handling

This commit is contained in:
Daniel Supernault 2023-07-16 04:17:23 -06:00
parent 4b611be2d9
commit 3590adbd87
No known key found for this signature in database
GPG key ID: 0DEF1C662C9033F7

View file

@ -16,6 +16,7 @@ use App\Services\AccountService;
use App\Http\Controllers\AvatarController;
use GuzzleHttp\Exception\RequestException;
use App\Jobs\MediaPipeline\MediaDeletePipeline;
use Illuminate\Support\Arr;
class MediaStorageService {
@ -42,27 +43,16 @@ class MediaStorageService {
return false;
}
$h = $r->getHeaders();
$h = Arr::mapWithKeys($r->getHeaders(), function($item, $key) {
return [strtolower($key) => last($item)];
});
if (isset($h['content-length']) && isset($h['content-type'])) {
if(empty($h['content-length']) || empty($h['content-type'])) {
return false;
}
$len = is_array($h['content-length']) ? $h['content-length'][0] : $h['content-length'];
$mime = is_array($h['content-type']) ? $h['content-type'][0] : $h['content-type'];
} else {
if (isset($h['Content-Length'], $h['Content-Type']) == false) {
if(!isset($h['content-length'], $h['content-type'])) {
return false;
}
if(empty($h['Content-Length']) || empty($h['Content-Type']) ) {
return false;
}
$len = is_array($h['Content-Length']) ? $h['Content-Length'][0] : $h['Content-Length'];
$mime = is_array($h['Content-Type']) ? $h['Content-Type'][0] : $h['Content-Type'];
}
$len = (int) $h['content-length'];
$mime = $h['content-type'];
if($len < 10 || $len > ((config_cache('pixelfed.max_photo_size') * 1000))) {
return false;