Resolve Issue #144

This commit is contained in:
djmaze 2021-09-16 14:36:38 +02:00
parent 8abf8844bc
commit fd28e65ed6
2 changed files with 55 additions and 52 deletions

View file

@ -771,14 +771,11 @@ END;
public static function ContentTypeType(string $sContentType, string $sFileName) : string public static function ContentTypeType(string $sContentType, string $sFileName) : string
{ {
$sResult = '';
$sContentType = \strtolower($sContentType); $sContentType = \strtolower($sContentType);
if (0 === \strpos($sContentType, 'image/')) if (0 === \strpos($sContentType, 'image/')) {
{ return 'image';
$sResult = 'image';
} }
else
{
switch ($sContentType) switch ($sContentType)
{ {
case 'application/zip': case 'application/zip':
@ -790,8 +787,8 @@ END;
case 'application/x-bzip': case 'application/x-bzip':
case 'application/x-bzip2': case 'application/x-bzip2':
case 'application/x-debian-package': case 'application/x-debian-package':
$sResult = 'archive'; return 'archive';
break;
case 'application/msword': case 'application/msword':
case 'application/rtf': case 'application/rtf':
case 'application/vnd.ms-excel': case 'application/vnd.ms-excel':
@ -802,28 +799,25 @@ END;
case 'application/vnd.openxmlformats-officedocument.presentationml.presentation': case 'application/vnd.openxmlformats-officedocument.presentationml.presentation':
case 'application/vnd.oasis.opendocument.text': case 'application/vnd.oasis.opendocument.text':
case 'application/vnd.oasis.opendocument.spreadsheet': case 'application/vnd.oasis.opendocument.spreadsheet':
$sResult = 'doc'; return 'doc';
break;
case 'application/pdf': case 'application/pdf':
case 'application/x-pdf': case 'application/x-pdf':
$sResult = 'pdf'; return 'pdf';
break;
} }
if ('' === $sResult)
{
switch (\strtolower(static::GetFileExtension($sFileName))) switch (\strtolower(static::GetFileExtension($sFileName)))
{ {
case 'zip': case 'zip':
case '7z': case '7z':
case 'rar': case 'rar':
$sResult = 'archive'; return 'archive';
break;
} case 'pdf':
} return 'pdf';
} }
return $sResult; return '';
} }
/** /**

View file

@ -147,8 +147,12 @@ trait Raw
$oAccount = $this->getAccountFromToken(); $oAccount = $this->getAccountFromToken();
$sContentTypeOut = empty($sContentTypeIn) ? // https://github.com/the-djmaze/snappymail/issues/144
\MailSo\Base\Utils::MimeContentType($sFileNameIn) : $sContentTypeIn; if ('.pdf' === \substr($sFileNameIn,-4)) {
$sContentTypeOut = 'application/pdf'; // application/octet-stream
} else {
$sContentTypeOut = $sContentTypeIn ?: \MailSo\Base\Utils::MimeContentType($sFileNameIn);
}
$sFileNameOut = $this->MainClearFileName($sFileNameIn, $sContentTypeIn, $sMimeIndex); $sFileNameOut = $this->MainClearFileName($sFileNameIn, $sContentTypeIn, $sMimeIndex);
@ -204,6 +208,11 @@ trait Raw
$sFileNameOut = $sFileName; $sFileNameOut = $sFileName;
} }
// https://github.com/the-djmaze/snappymail/issues/144
if ('.pdf' === \substr($sFileNameOut,-4)) {
$sContentTypeOut = 'application/pdf';
}
$sFileNameOut = $self->MainClearFileName($sFileNameOut, $sContentTypeOut, $sMimeIndex); $sFileNameOut = $self->MainClearFileName($sFileNameOut, $sContentTypeOut, $sMimeIndex);
$self->cacheByKey($sRawKey); $self->cacheByKey($sRawKey);