Dateiupload und anzeigen der dateien

Hallo

Ich habe wieder mal ein php-problem. Mein Problem ist der Fileupload. Ich kann zurzeit nur jpeg dateien hochladen mit meinem Skript. Ich muss aber auch noch pdf files hochladen.

Mein Skript:

// Variabeln für max. Dateigröße und erlaubte Dateiformate festlegen 
$max\_byte\_size = 20000000; 
$allowed\_types = "(jpg|jpeg|pdf)"; 


 // Überprüfung, ob wirklich eine Datei hochgeladen wurde 
 if(is\_uploaded\_file($\_FILES["file"]["tmp\_name"])) { 

 // Überprüfung der Endungen (/i=Groß- Kleinschreibung nicht berücksichtigen) 
 if(preg\_match("/\." . $allowed\_types . "$/i", $\_FILES["file"]["name"])) { 

 // Überprüfung der Dateigröße 
 if($\_FILES["file"]["size"] "; 
 echo "Name: " . $\_FILES["file"]["name"] . "
"; 
 echo "Größe: " . $\_FILES["file"]["size"] . " Byte
"; 
 echo "MIME-Type: " . $\_FILES["file"]["type"] . "
"; 
 echo " **Aktion wurde hinzugefügt! Bitte warten...**
";
} 
 else {echo "Die Datei darf max. ".$max\_byte\_size." Byte groß sein.";} 
 } 
 else {echo "Nur jpeg-Format oder pdf-Format erlaubt.";} 
 } 
 else {echo "Keine Datei zum Hochladen angegeben.";} 

?\>

Danke im Voraus.
Falls ich schon wieder jemanden belästige, tuts mir leid.

Lg masterchief

In meinem Profil habe ich darauf hingewiesen, daß ich blutiger PHP-Anfänger und eben nur mal „Interessierter“ bin. Ich bin schon sehr glücklich darüber, daß ich überhaupt etwas mit PHP anfangen kann. Mir ist es gerade mal gelungen das Spiel „Kniffel“ in seinen Ansätzen in PHP,hta (VB_Script),PROFAN und Java-Script (nicht Java selbst) zu programmieren. Mein Programmier-Stil ist der: Vom Hirn über die Tastatur ins Script und Testlauf nach jedem Anweisungs-Block.

Dein spezielles Upload-Problem nehme ich gerne als Anregung zum „weiterforschen“. Bis ich jedoch mit einer für dich brauchbaren Lösung dienen kann, werden wohl einige Wochen vergehen. Hoffentlich „erbarmt“ sich einer früher. Falls nicht, kannst du ja auf mein in ferner Zukunft liegendes Resultat zurückgreifen. :smile:

Was passiert denn, wenn Du versuchst mit dem Script eine pdf-Datei hochzuladen?

Danke für deine Bemühungen.

Was passiert denn, wenn Du versuchst mit dem Script eine
pdf-Datei hochzuladen?

Hi

Es wird die Datei zwar hochgeladen, aber ohne dateierweiterung und deswegen wird nachher auch nur ein Platzhalter angezeigt.

mfg
masterchief

Also, ich habe Dein Skript mal auf meinem Server durchprobiert.

Der Schnipsel, den Du hier gepostet hast, ist so nicht lauffähig, weil $row1 (siehe Zeile mit move_uploaded_file) nicht initialisiert wird. Vermutlich wird das in Deinem echten Source Code irgendwo frueher gemacht. Ich habe dort einfach mal ‚…/img/uploads/temp.‘ . $ext als Zieldateinamen gewählt.

Dein eigentliches Problem scheint mir aber zu sein, dass $ext falsch initialisiert wird. Der temporäre Dateiname, der vom Server beim Upload gewählt wird, enthält tatsächlich keine Endung. Aber der Eintrag $_FILES[„file“][„name“] enthält den ursprünglichen Dateinamen samt Endung.

Direkt unter // Datei uploaden müsste es also NICHT heißen:
$ext= end(explode(".", $_FILES[‚tmp_name‘]));
SONDERN:
$ext= end(explode(".", $_FILES[‚file‘][‚name‘]));
(also zwei Fehler in einer Zeile: 1) Index ‚file‘ fehlt. 2) ‚name‘ statt ‚tmp_name‘)

HTH

Fanim

P.S.: Falls Du Dich erkenntlich zeigen möchtest. Ich kann voraussichtlich demnächst fuer eine eigene Facebook-Application ein paar Beta-Tester gebrauchen. Jeder, der sich die Sache mal kurz ansieht und Hinweise gibt, ist willkommen. Bei Interesse schreib mal an: [email protected].

Hallo!

Der Upload funktioniert jetzt ein bisschen mehr. Jetzt bekomm ich eine Datei, die so lautet 123pdf aber keine Dateiendung.

Ich versuche es selbst zu lösen.
Danke für die Tipps.

MFG

masterchief

OK. Das schaffst du dann bestimmt jetzt auch selbst. Vermutlich musst Du noch die folgende Zeile so ändern, damit vor der Endung ein Punkt beim Dateinamen eingefügt wird:

ALT:
move_uploaded_file($_FILES[„file“][„tmp_name“], „…/img/uploads/“.$row1[‚maxid‘].$ext);

NEU:
move_uploaded_file($_FILES[„file“][„tmp_name“], „…/img/uploads/“.$row1[‚maxid‘].".".$ext);