Ticket system bugfixes with filename handling

This commit is contained in:
Xenomporio 2022-08-20 11:59:32 +02:00
parent 84cd447f49
commit 954eebcdc1
3 changed files with 13 additions and 5 deletions

View File

@ -145,8 +145,11 @@ final class SystemMailer
$email = new EmailMessage($subject, $body, $recipients, $ccs, $bccs); $email = new EmailMessage($subject, $body, $recipients, $ccs, $bccs);
foreach ($attachFiles as $file) { foreach ($attachFiles as $file) {
$this->logger->debug("Attaching file", ['filename' => $file]);
if ($file !== null && file_exists($file)) { if ($file !== null && file_exists($file)) {
$email->addAttachment(new FileAttachment($file)); $email->addAttachment(new FileAttachment($file));
} else {
$this->logger->debug("Attaching file failed", ['filename' => $file]);
} }
} }

View File

@ -769,7 +769,7 @@ class TicketImportHelper
$dateiname = $this->formatter->encodeToUtf8($dateiname); $dateiname = $this->formatter->encodeToUtf8($dateiname);
$dateiname = htmlspecialchars_decode($dateiname); $dateiname = htmlspecialchars_decode($dateiname);
} }
if (stripos(strtoupper($dateiname), 'UTF-8\'\'') == 0) { if (stripos(strtoupper($dateiname), 'UTF-8\'\'') === 0) {
$dateiname = $this->formatter->encodeToUtf8(urldecode(substr($dateiname,7))); $dateiname = $this->formatter->encodeToUtf8(urldecode(substr($dateiname,7)));
$dateiname = htmlspecialchars_decode($dateiname); $dateiname = htmlspecialchars_decode($dateiname);
} }

View File

@ -43887,7 +43887,7 @@ function Firmendaten($field,$projekt="")
if(empty($pathArr) || !is_dir($prefix.'/'.implode('/', $pathArr))) { if(empty($pathArr) || !is_dir($prefix.'/'.implode('/', $pathArr))) {
return; return;
} }
$glob = glob($prefix.implode('/', $pathArr).'/*'); $glob = glob($prefix.implode('/', $pathArr).'/*'); /*/*
if(!empty($glob)) { if(!empty($glob)) {
return; return;
} }
@ -43985,6 +43985,9 @@ function Firmendaten($field,$projekt="")
return strtolower($tmp['extension']); return strtolower($tmp['extension']);
} }
/*
* Retrieve files from stichwoerter and provide them in tmp for access
*/
function GetDateiSubjektObjektDateiname($subjekt,$objekt,$parameter,$prefix="") function GetDateiSubjektObjektDateiname($subjekt,$objekt,$parameter,$prefix="")
{ {
@ -43994,11 +43997,13 @@ function Firmendaten($field,$projekt="")
} }
$tmp = []; $tmp = [];
foreach($dateien as $datei) { foreach($dateien as $datei) {
$tmpname = tempnam($this->GetTMP(), $prefix);
$newname = $tmpname."_".$this->GetDateiName($datei['datei']);
copy($this->GetDateiPfad($datei['datei']),$newname); // Why in the world..?! // $tmpname = tempnam($this->GetTMP(), $prefix);
$tmpname = $this->GetTMP().md5(uniqid(mt_rand(), true));
mkdir ($tmpname);
$newname = $tmpname."/".$this->GetDateiName($datei['datei']);
copy($this->GetDateiPfad($datei['datei']),$newname);
$tmp[] = $newname; $tmp[] = $newname;
} }
return $tmp; return $tmp;