Kann $_FILES['userfile']['type'] nicht auslesen!

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Borstenhorst
Mitglied
Beiträge: 146
Registriert: 19.01.2004 18:37
Wohnort: Oberursel
Kontaktdaten:

Kann $_FILES['userfile']['type'] nicht auslesen!

Beitrag von Borstenhorst »

Hallo Gemeinde,
habe folgendes Problem, ich habe ein kleines UploadScript geschrieben hier mal ein Ausschnitt:

Code: Alles auswählen

...
if ($step == 'upload')
  { 
 	if (isset($_FILES) && isset($_REQUEST[ 'todir' ]) && isset($_REQUEST[ 'destination' ]))
	if (isset($_FILES[ 'userfile' ]) && ($_REQUEST[ 'todir' ] != '') && ($_REQUEST[ 'destination' ] != ''))
	if (isset($_REQUEST[ 'todir' ]))
	if (file_exists($_REQUEST[ 'todir' ]))
	if (is_dir($_REQUEST[ 'todir' ]))
		{
....
		
		$filetype = $_FILES['userfile']['type'];		
		if($filetype == "application/octet-stream" or $filetype == "text/html")
			{}
			else
			{
			switch($filetype)
			{
			
.....
			
			//Kategorie 4
			case 'application/pdf':
			$filekat=4;
			break;
			case 'application/msword':
			$filekat=4;
			break;
			
			default:
			$filekat="5";
			break;
			}
			//Speichern und Upload

			$dateiname = $_FILES['userfile']['name'];
			$dateigroese = $_FILES['userfile']['size'];
			$filetype = $_FILES['userfile']['type'];
			$dateigroese = $dateigroese/1024;
			$dateigroese =round($dateigroese,2); 
		
			
				if($filetype == "image/jpeg" or $filetype == "image/pjpeg")
				{
				createThumb($tempfile,3);
				}
			mysql_query("INSERT INTO `datein` ( `id` , `benutzer` , `name` , `kommentar` ,`size` , `type`, `pfad`, `uploadtime` , `kategorie` )VALUES 
			('', '$_SESSION[authuser]', 'Test', '', '$dateigroese', '$filetype', '$tempfile', '$timenow', '$filekat')");
			move_uploaded_file($_FILES[ 'userfile' ][ 'tmp_name' ], $filename);
			}
		
		}
  }
......
Name und Größe Auslesen geht nur der DateiTyp nicht.
Das ganze ist Teil des XP Publishing Wizards übermittelt der das vll einfach nicht mit ?!?

Bin ratlos :(
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

Nicht raten, sondern prüfen ;)

Einfach mal nach dem if ($step == 'upload') { mal ein die(var_dump($_FILES)); reinpacken und schauen, was rauskommt.

Deine immense If-Verschachtelung empfinde ich persönlich jedoch ziemlich abenteuerlich. Wenn Du wirklich alles abfragen musst, wieso verknüpfst Du das nicht alles mit && ?

Zudem sowas

Code: Alles auswählen

if($filetype == "application/octet-stream" or $filetype == "text/html")
         {}
         else
ist bäh bäh. Mach doch einfach

Code: Alles auswählen

if(!($filetype == "application/octet-stream" or $filetype == "text/html"))
         {
Grüße,
Tekin
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
Benutzeravatar
Borstenhorst
Mitglied
Beiträge: 146
Registriert: 19.01.2004 18:37
Wohnort: Oberursel
Kontaktdaten:

Beitrag von Borstenhorst »

Habe es geschafft :) wurde in anderer Variable gespeichert.

Code: Alles auswählen

$filetype = $_REQUEST[contenttype];		
@Übermirmitdemlangennamen
Das Problem ist das XP wohl sehr pienzig ist mit dem Script habe das auch schon fertig so runtergeladen und nur modifiziert.
Problem wenn man damit codet ist einfach das man es sich nicht live angucken kann da XP teilweise "unsichtbar" mit dem script kommuniziert also einfach mal irgendwo ein echo reinhaun geht nicht ;)
Benutzeravatar
cYbercOsmOnauT
Ehemaliges Teammitglied
Beiträge: 3820
Registriert: 18.02.2004 23:02
Wohnort: Göttingen
Kontaktdaten:

Beitrag von cYbercOsmOnauT »

die(var_dump leistet gute Dienste die Du Dir im Kopf behalten solltest.
• prof. phpbb-Installation, Reparatur, Rettung nach Hackattacken, sowie PHP/JS Programmierung aller Art
Zend Certified Engineer, Linux Administrator und die Sicherheit von 34 Jahren Programmiererfahrung
• Interesse? Kontakt unter t.birduezen@web-coding.eu
Antworten

Zurück zu „Coding & Technik“