Projekt

Allgemein

Profil

GX-Bug #44594 » Solved_problem_with_invalid_email_attachment_when_the_same_file_is_uploaded_twice_.patch

Alexandros Tselegidis, 18.12.2015 14:01

Unterschiede anzeigen:

src/GXEngine/Classes/CoreServices/Email/AttachmentsHandler.inc.php (revision )
76 76
	 */
77 77
	public function uploadAttachment(EmailAttachmentInterface $attachment)
78 78
	{
79
		$info = pathinfo((string)$attachment->getPath());
80 79
		$name = ($attachment->getName()
81 80
		         !== null) ? (string)$attachment->getName() : basename((string)$attachment->getPath());
81
		$originalName = $name; 
82 82
		$path = $this->uploadsDirPath . '/tmp/';
83 83

  
84 84
		// Validate uploaded file. 
......
88 88
			$postfixCounter = 1;
89 89
			do
90 90
			{
91
				$name = $info['filename'] . '-' . $postfixCounter . '.' . $info['extension'];
91
				if (strpos($name, '.') > -1)
92
				{
93
					$name = preg_replace('/\.(?=[^.]*$)/', '-' . $postfixCounter . '.', $originalName);
94
				}
95
				else
96
				{
97
					$name = $originalName . '-' . $postfixCounter;
98
				}
92 99
				$postfixCounter++;
93 100
			}
94 101
			while(file_exists($path . $name));
......
97 104
		// Copy file to uploads directory.
98 105
		if(!@copy((string)$attachment->getPath(false), $path . $name))
99 106
		{
100
			throw new Exception('Could not store uploaded file: ' . $attachment['name']);
107
			throw new Exception('Could not store uploaded file: ' . (string)$attachment->getPath());
101 108
		}
102 109

  
103 110
		// Return new email attachment instance.
    (1-1/1)