Zum Inhalt springen

Bilder werden doppelt gespeichert

Erstellt am 14. Januar 2016 · Noch keine Antworten

Tags: Import & Export, Frage

greendivision ·

Ich habe ein Import-Script, mit dem ich XML-Dateien verarbeite. Jede XML-Datei beinhaltet einen Datensatz. Diese werden in 30er Schritten nacheinander über den Scheduler abgearbeitet.
Wenn ich nur eine einzelne XML-Datei einspiele klappt alles reibungslos.
Wenn ich aber mehrere (also zum Beispiel 30) XML-Dateien in einem Zug einspiele passiert es zum Teil, dass die Bilder doppelt importiert werden.

Das Script sieht so aus:

				$newTour->removeAllImagesFromGallery();

				$indexBild = NULL;
				if(!is_array($reise['bild'])) $reise['bild'] = array();
				foreach($reise['bild'] as $bild) {
					if($bild['@attributes']['dateiname'] && !is_array($indexBild)) {
						$indexBild = $bild;
					}
				}
                if(is_file(\TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName($this->settings['sourceFolder']) . $indexBild['@attributes']['dateiname'])) {
					if ($storage->hasFile('/' . $this->settings['uploadFolder'] . $indexBild['@attributes']['dateiname'])) {
                        $fileObject = $storage->getFile('/' . $this->settings['uploadFolder'] . $indexBild['@attributes']['dateiname']);
                    } else {
                        $fileObject = $storage->addFile(\TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName($this->settings['sourceFolder']) . $indexBild['@attributes']['dateiname'], $saveFolder, $indexBild['@attributes']['dateiname']);
                    }
                    $fileReference = $this->objectManager->get('VENDOR\\MyExt\\Domain\\Model\\FileReference');
                    /* @var $fileReference \VENDOR\MyExt\Domain\Model\FileReference */
                    $fileReference->setFile($fileObject);
                    $newTour->setImage($fileReference);
                }

Die Bilder-Referenzen werden mit "$newTour->removeAllImagesFromGallery()" ordnungsgemäß entfernt.
Das einzige, was ich nicht im Verdacht habe ist der Persistence Manager, da im weiteren Bereich noch aufgerufen wird, wenn bestimmter Unter-Objekte angelegt werden.

Gibt es einen Trick, dass Bilder nicht doppelt vergeben werden.