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

View file

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