WinFuture-Forum.de: Dateiüberprüfung - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Dateiüberprüfung auch .rar


#1 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 28. April 2008 - 21:06

Hey Community,
Ich möchte gerne eine Dateiendungsüberprüfung in If Forum durchfüren.

Ich kann auf folgende Sachen zurückgreifen:

$_FILES['uploadedfile']['tmp_type'] usw

Ich möchte vorallem dass .rar unterstützt wird.
Das ganze soll nun also per mimetypen überprüft werde, nur wie..

Ein paar Mime-typen:

rar=> application/x-rar-compressed,
zip=> application/zip,
jpeg=> image/jpeg,
jpg=> image/jpeg, // was is eig der Unterschied zu jpeg und jpg ? :-D
und noch mehr---


Wie gesagt das ganze sollte möglichst in einer If Funktion erfolgen. Außerdem habe ich ein Bereich im Script wo man einstellungen vornehmen kann. Dort sollten sie einfach eingetragen werden können.
btw: Wie sieht es aus wenn man einen dateityp hat der nicht als mimetyp vorhanden ist? Wie wird der dann hochgeladen?

Danke
Toasterfraktion
0

Anzeige



#2 Mitglied ist offline   ph030 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.130
  • Beigetreten: 14. Juli 04
  • Reputation: 36
  • Geschlecht:unbekannt

geschrieben 28. April 2008 - 21:42

Zitat

jpg=> image/jpeg, // was is eig der Unterschied zu jpeg und jpg ? :-D
Korrekt heisst es JPEG, jpg kommt nur daher, dass MS sich denkt, 3 Zeichen als Extension würden reichen...naja, die sind ja selbst nicht fähig, ordentlich mit MIME umzugehen...

So als Tipp, du solltest bereits während dem Upload prüfen, um was für ein File es sich handelt - dafür reichen die ersten paar Bytes - sonst entsteht nur unnötig Traffic.

Mehr kann ich da - gsd - nicht helfen, PHP suckt :)
0

#3 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 28. April 2008 - 21:46

:-D okay die ersten Bytes nur zu überprüfen is ne echt gute Idee, nur wie setze ich sie um?

Schönen Abend
0

#4 Mitglied ist offline   h-a-n-n-e-s 

  • Gruppe: aktive Mitglieder
  • Beiträge: 823
  • Beigetreten: 11. August 06
  • Reputation: 1

geschrieben 29. April 2008 - 12:45

Hallo,
kann es sein das du daraus einen Download machen willst weil du die Mime-Typen brauchst?

Was gibt den bei dir $_FILES['uploadedfile']['tmp_type'] aus? Das hier wäre auch intressesant.

Dieser Beitrag wurde von h-a-n-n-e-s bearbeitet: 29. April 2008 - 12:51

Eingefügtes Bild
0

#5 Mitglied ist offline   [Elite-|-Killer] 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 02. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Passau

geschrieben 29. April 2008 - 12:50

Die Dateiendung sagt hald nur herzlich wenig über die Datei selbst aus, im Gegensatz zu den ersten paar Bytes und dem Mime Type.
0

#6 Mitglied ist offline   ph030 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.130
  • Beigetreten: 14. Juli 04
  • Reputation: 36
  • Geschlecht:unbekannt

geschrieben 29. April 2008 - 12:50

Na, da ist dann aber keinerlei Manipulationsschutz enthalten...
0

#7 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 29. April 2008 - 12:57

Naja es soll ein Bestandteil eines Uploadsscripts werden. Die Datei wird per Formular abgeschickt. Ich möchte festlegen welche Dateien man hochladen darf, das kann auch ohne mimetypen geschehen.

mein Problem ist, ich weiß nicht wie ich es umsetzen soll. Gibt’s da ne Funktion?
0

#8 Mitglied ist offline   K050V4 

  • Gruppe: aktive Mitglieder
  • Beiträge: 788
  • Beigetreten: 13. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart
  • Interessen:(X)HTML<br />CSS2+<br />PHP 4/5<br />MySQL 5<br />Symfony 1.2+<br />JavaScript / AJAX<br />jQuery<br />C++<br />C#<br />Java<br />...

geschrieben 29. April 2008 - 15:00

Ich habe für einen Kumpel ein Upload-script eben geschrieben,
dann dachte ich mir lordi und Tosterfraktion könnten das gut gebrauchen... :wink:

upload.php
<?php

	$f_groesse_kb   = $_FILES['DateiVomUser']['size']/1024;
	//Dateigröße in kb bestimmen

	// ### Diese Werte können verändert werden:
	$f_ordner	   = "uploads/";
	// Der Ordner in den die Datei hochgeladen werden soll
	$f_type_er	  = array('jpg', 'jpeg', 'png', 'txt', 'doc', 'mp3');
	// Erlaubte Datenendungen/Datentypen
	$f_groesse_max  = 500;
	//Maximale Dateigröße in >KByte<

	// ### Hier nichts ändern!
	$f_uploaded	 = $f_ordner.$_FILES['DateiVomUser']['name'];
	//Uploadordner mit Datei

	$f_type		 = explode(".", $_FILES['DateiVomUser']['name']);
	//Dateiname wird gesplittet um Dateiendung zu bestimmen
	$f_endung	   = end($f_type);
	//Letzter Wert im Array $f_type ist die Dateiendung
	//und wir mit end($f_type) bestimmt
	$f_type_ok	  = 0;
	//$f_type_ok ist 0 -> siehe for-Schleife

	// ### Dateiendung überprüfen
	for($i=0; $i<=count($f_type_er); $i++) {
	  if($f_type_er[$i]==$f_endung) $f_type_ok = 1;
	  //Geht alle Array-Werte von $f_type durch und überprüft,
	  //ob die Datenendung im Array gefunden wurde. Wenn ja
	  //--> Dateiendung erlaubt $f_type_ok=1 am sonsten bleibt $f_type_ok=0
	}

	if($f_type_ok == 1) {
	  if($f_groesse_kb < $f_groesse_max) {
		if(move_uploaded_file($_FILES['DateiVomUser']['tmp_name'], $f_uploaded)) {
		  echo "Die Datei <a href=\"".$f_uploaded."\">".$_FILES['DateiVomUser']['name']."</a> wurde erfolgreich hochgeladen.";
		} else {
		  echo "Fehler beim Hochladen der Datei.";
		}
	  } else {
		echo "Datei &uuml;bertrifft die maximale Dateigr&ouml;&szlig;e von ".$f_groesse_max." kb!";
	  }
	} else {
	  echo "Die Dateiendung ist nicht erlaubt.";
	}
?>


Das Formular:
<form enctype="multipart/form-data" method="POST" action="upload.php">
Datei: <input name="DateiVomUser" type="file" />
<input type="submit" value="Hochladen" />
</form>

Dieser Beitrag wurde von K050V4 bearbeitet: 29. April 2008 - 17:08

Zitat

"In der Welt des Erkennbaren ist die Idee des Guten die höchste." - Platon

Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
0

#9 Mitglied ist offline   ph030 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.130
  • Beigetreten: 14. Juli 04
  • Reputation: 36
  • Geschlecht:unbekannt

geschrieben 29. April 2008 - 15:54

for($i=0; $i<=30; $i++)
Was soll denn sowas? Warum lässt du es nicht gleich über die Länge des betreffenden Arrays laufen?
0

#10 Mitglied ist offline   K050V4 

  • Gruppe: aktive Mitglieder
  • Beiträge: 788
  • Beigetreten: 13. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart
  • Interessen:(X)HTML<br />CSS2+<br />PHP 4/5<br />MySQL 5<br />Symfony 1.2+<br />JavaScript / AJAX<br />jQuery<br />C++<br />C#<br />Java<br />...

geschrieben 29. April 2008 - 16:18

Weil ich nicht auf die Funktion komme, die die Werte vom Array zählt und war auch zu faul um zu googlen :wink: Ich dachte mehr als 30 Datenendungen wird da eh keiner hinschreiben :imao:

Zitat

"In der Welt des Erkennbaren ist die Idee des Guten die höchste." - Platon

Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
0

#11 Mitglied ist offline   ph030 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.130
  • Beigetreten: 14. Juli 04
  • Reputation: 36
  • Geschlecht:unbekannt

geschrieben 29. April 2008 - 16:29

Gut, keine Ahnung, wie das bei PHP geht, laut Google ist es count($array). Das würde ich auf jeden Fall machen, denn sonst wird die Schleife ja nur unnötig lange ausgeführt - wäre hier zwar nicht so tragisch, aber auf jeden Fall unschön.
0

#12 Mitglied ist offline   K050V4 

  • Gruppe: aktive Mitglieder
  • Beiträge: 788
  • Beigetreten: 13. August 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Stuttgart
  • Interessen:(X)HTML<br />CSS2+<br />PHP 4/5<br />MySQL 5<br />Symfony 1.2+<br />JavaScript / AJAX<br />jQuery<br />C++<br />C#<br />Java<br />...

geschrieben 29. April 2008 - 17:06

So, ich hoffe du bist zufrieden :wink:

Zitat

"In der Welt des Erkennbaren ist die Idee des Guten die höchste." - Platon

Spritify! Easy CSS-Sprite-Generator | Albanisch Deutsch Wörterbuch
0

#13 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 29. April 2008 - 17:28

Ohja, das konnte ich gut gebrauchen... Vielen besten Dank
:wink:
0

#14 Mitglied ist offline   [Elite-|-Killer] 

  • Gruppe: aktive Mitglieder
  • Beiträge: 762
  • Beigetreten: 02. Oktober 05
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Passau

geschrieben 29. April 2008 - 17:38

Beitrag anzeigenZitat (ph030: 29.04.2008, 17:29)

Gut, keine Ahnung, wie das bei PHP geht, laut Google ist es count($array). Das würde ich auf jeden Fall machen, denn sonst wird die Schleife ja nur unnötig lange ausgeführt - wäre hier zwar nicht so tragisch, aber auf jeden Fall unschön.

Oder es kommt wirklich jemand auf die Perverse Idee mehr als 30 Punkte rein zu machen. Die Lösung mit count() ist sicherlich effektiver.
0

#15 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 29. April 2008 - 20:36

Der Vollständigkeit halber: Es gibt natürlich in PHP auch Funktionen für MIME. Mit der Fileinfo Erweiterung kann der "MIME-Typ" bestimmt werden. Ein Beispiel dazu findet man hier: http://www.php.net/m....finfo-open.php.

Gruß,
Stefan
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0