Zum Inhalt springen

Extension sp_directory - Upload Wahnsinn

Erstellt am 25. März 2007 · Noch keine Antworten

Tags: Datei-Upload, PHP, Frage

webseitenschrauber ·

Liebe Community,

ich habe ein mittelprächtiges Problem mit der Extension sp_directory.
Ich erstelle einen Alumnifinder in welchem sich ehemalige Studenten einer Hochschule gegenseitig finden können. Als weitere Features habe ich die tinymce eingebaut, damit User ein en Profiltext bzw. einen Lebenslauf eintippen können. Eine weitere mm Table sorgt für eine weitere Kategorie. So können sich Alumnis gegenseitig nach Fachbereich, Abschlussjahr und PLZ finden.

Komischerweise weist das debugging keinerlei Fehler auf:

tx_spdirectory_pi1
name->image->Wasserlilien.jpg
type->image->image/jpeg
tmp_name->image->/tmp/phpaNLm9c
error->image->0
size->image->83794

Den Ursprünglichen Code (der nicht funktionierte):

<? 
function storeImage()	{

		if($GLOBALS[HTTP_POST_FILES][tx_spdirectory_pi1][name][image])	{

			$this->fileFunc = t3lib_div::makeInstance("t3lib_basicFileFunctions");
			$sauber = $this->fileFunc->cleanFileName($GLOBALS[HTTP_POST_FILES][tx_spdirectory_pi1][name][image]); 
			$unique = $this->fileFunc->getUniqueName($sauber,PATH_site.$TYPO3_LOADED_EXT[$key]["siteRelPath"]."uploads/pics/");
			move_uploaded_file($this->piVars[image],$unique);		
		}
		$return = pathinfo($unique);

	return $return[basename];
	
	}
?>


habe ich zeitgemäß etwas angepasst:

<?
function storeImage()	{

		if($_FILES[tx_spdirectory_pi1][name][image])	{

			$this->fileFunc = t3lib_div::makeInstance("t3lib_basicFileFunctions");
			$sauber = $this->fileFunc->cleanFileName($_FILES[tx_spdirectory_pi1][name][image]);
			$unique = $this->fileFunc->getUniqueName($sauber, PATH_site."uploads/pics/");
			move_uploaded_file($_FILES[tx_spdirectory_pi1][tmp_name][image],$unique.$_FILES[tx_spdirectory_pi1][name][image]);

		}
		$return = pathinfo($unique);

	return $return[basename];

	}
?>

Danke im Voraus und noch nen schönen Sonntag,

Micha

P.S.Habe die Lösung gefunden....

es war ein ganz blöder fehler im Code:

Es muss heißen:

<?
function storeImage()	{

		if($_FILES[tx_spdirectory_pi1][name][image])	{

			$this->fileFunc = t3lib_div::makeInstance("t3lib_basicFileFunctions");
			$sauber = $this->fileFunc->cleanFileName($_FILES[tx_spdirectory_pi1][name][image]);
			$unique = $this->fileFunc->getUniqueName($sauber, PATH_site."uploads/pics/");
			move_uploaded_file($_FILES[tx_spdirectory_pi1][tmp_name][image],$unique);
			
			

		}
		$return = pathinfo($unique);

	return $return[basename];

	}?>

Der Code

<?
move_uploaded_file($_FILES[tx_spdirectory_pi1][tmp_name][image],$unique.$_FILES[tx_spdirectory_pi1][name][image]);

?>

erzeugt einen doppelten dateinamen, da dieser ja bereis in $unique steckt. und durch $_FILES[tx_spdirectory_pi1][name][image]) verdoppelt wird.

Beispiel:
mypic.jpg.mypic.jpg

<? 
move_uploaded_file($_FILES[tx_spdirectory_pi1][tmp_name][image],$unique);

?>

führt zum richtigen Ergebnis...