Upload script für 3 Bilder


Discman

Mitglied
Hallo ;)

ich habe ein formular gebastelt mit 3 upload feldern bild1, bild2 und bild3
und noch viele andere felder die ich dann mit ner php datei auswerten lasse um die ergebnisse in einer mysql datenbank festzuhalten...

das problem das ich habe wird für euch vielleicht leicht lösbar sein aber mit upload scripts hab ich mich noch nicht besonders beschäftigt um ein bild raufzuladen reicht es gerade aber irgendwie schaffe ich es nicht alle 3 bilder raufzuladen :rolleyes:

wichtig dabei ist für mich das jedes bild einen zufallsnamen bekommt inkl. das ich die größe festlegen kann in kb damit mir keiner eine riesen datei raufladet und das es jpeg oder gif sein soll und natürlich das jeder dateiname (von allen 3 bildern) seperat in der richtigen spalte in der datenbank landet....

wie gesagt bin ich mit einem tutorial mal soweit gekommen das ich ein bild auf den server bekomme...und das der dateiname dann in der mysql datenbank in der spalte "bild1" aufscheint damit ich die bilder wieder richtig ausgeben kann

vielleicht kennt wer von euch ein gutes tutorial wo erklärt wird wie man 3 bilder online bekommt mit den "vorschriften" die ich gerne haben würde sonst bleib ich hier hängen und ich möchte das formular mal fertigstellen :(

dank euch :)

lg disc
 

Feely

Mitglied
also um die Frage der maximalen Größe zu lösen:

Wenn du
<INPUT TYPE=hidden NAME=MAX_FILE_SIZE VALUE=2048000>
in dein Formular einbindest kannst du damit die max. Dateigröße bestimmen.

Aber ein Tut um 3 Bilder oder mehr gleichzeitig aufn server zu bringen....nicht das ich wüßte :X

Hier mal ein simples upload script:
PHP:
<FORM ENCTYPE="multipart/form-data" METHOD=POST>
<input type=hidden name=test value=lall>
<INPUT TYPE=hidden NAME=MAX_FILE_SIZE VALUE=2048000>
<INPUT NAME="userfile" TYPE="file" size="30">
<INPUT name="submit" TYPE="submit" VALUE="Senden">
<?php
$upload_dir = "../upload/$verz/";

if ($_FILES["userfile"][name]<>"" & $_FILES["userfile"][name]<>"none") {

   if 
	(!copy($_FILES["userfile"][tmp_name],$upload_dir.$_FILES["userfile"][name])) {
     echo "<br><span class=\"textdick\">Fehler: Datei konnte nicht gespeichert werden!</span><br>";
   }
   else {
     echo "<br><span class=\"textdick\">Upload erfolgreich!</span><br>";
   }
}
?>
</FORM>
 

ronin

Erfahrenes Mitglied
Mahlzeit.


Dein Problem is doch eigentlich keines. Wenn du weißt wie du ein Bild raufladen kannst, dann geht das auch mit 3. Du legst halt einfach 3 inputs an und wertest die nach dem Upload halt entsprechend aus.

Mußt nur aufpassen, das die max exec-time von 30 Sekunden nicht anspringt ... dafür müßte der User aber ne anständige Verbindung haben. 3 x 500kb Bilder in 30 Sekunden raufladen schafft man mit 56k wohl eher net ;)


PHP:
<form action="bla.php">
<input type="file" name="datei1">
<input type="file" name="datei2">
<input type="file" name="datei3">
</form>

ferdsch
 

Discman

Mitglied
danke erstmal für die schnellen antworten :)

das mit den input feldern ist mir schon klar nur wie ich die dann mittels php auswerte ist mir ein rätsel :rolleyes:

vorallem das ich auch noch von jedem file dann den neuen namen brauche für die datenbank... :confused:

lg disc
 

Sebastian Wramba

Erfahrenes Mitglied
Trotzdem gilt auch für dich, Discman, die Netiquette und der rote Kasten unter dem Antword-Feld, also demnächst Groß- und Kleinschreibung beachten, danke.
 

Discman

Mitglied
Tut mir leid, soll nicht wieder vorkommen als ich das Letztemal hier war (Tutorial gepostet) war das noch nicht aktiv.

lg disc
 

Tim C.

Erfahrenes Mitglied
An alle, die das Ammenmärchen von der max_execution_time glauben :rolleyes:
Beim drücken des Submitknopfes wird ein HTTP Upload ausgeführt und wenn dieser abgeschlossen ist, erst dann laufen die PHP Scripte ab. Man läuft also keine Gefahr mit der max_execution_time in Konflikt zu geraten.

Mal erhlich, sonst würde doch kaum ein Dateiupload Script funktionieren :rolleyes:

Zum Thema mehrere Dateien, schau mal was mir die Suchfunktion binnen 5 Sekunden schönes ausgespuckt hat (unter anderem)

http://www.tutorials.de/forum/showthread.php?threadid=74984&highlight=upload+mehrere+dateien
 

ronin

Erfahrenes Mitglied
Original geschrieben von Tim Comanns
An alle, die das Ammenmärchen von der max_execution_time glauben :rolleyes:
Beim drücken des Submitknopfes wird ein HTTP Upload ausgeführt und wenn dieser abgeschlossen ist, erst dann laufen die PHP Scripte ab. Man läuft also keine Gefahr mit der max_execution_time in Konflikt zu geraten.

Danke für die Aufklärung! *lob* ;)
 

Discman

Mitglied
2. Lob von mir ich werd den Script mal bisschen umschreiben und schaun was ich so zustande kriege

thx nochmal

lg disc
 

Discman

Mitglied
so ich hab mich jetzt ein wenig mit dem Beispiel beschäftigt...tatsache ist das ich kein großer PHP Könner bin aber ich trau mich den Script jetzt trotzdem zu posten :)

Was das Upload-Script können sollte...
  • Zufallsendung mittels time() + ne variable aus dem formular in dem Fall der Name
  • Nur gif oder jpeg zulassen
  • Max Dateigröße festlegen
  • Eigenen Ordner für Upload bzw Datei


Das Problem ist ich krieg immer einen Parse Error aber in einer Zeile wo nur der body geschlossen wird...

Parse error: parse error, unexpected $ in XXX on line 153 :confused:

Vielleicht hat irgendwer ne Idee ob ich einen Fehler gemacht habe in dem PHP Code

PHP:
for ($i = 1; $i < 3; $i++) 
{ 
  $tmp[$i]        = $_FILES['file'.$i]['tmp_name'];
  $size[$i]       = $_FILES['file'.$i]['size'];
  $type[$i]       = $_FILES['file'.$i]['type'];
  $filename[$i]   = $_FILES['file'.$i]['name'];
  $arrEndung  = explode(".",$filename[$i]);
  $datei[$i]    = time()."_".$anbietername.".".$arrEndung[count($arrEndung)-1];
  $dir        = "unterkunft_bilder/".$datei[$i];
 
  if($type[$i] == "image/gif") {
    $datei[$i] = "unterkunft_bilder/".time()."_".$anbietername.".gif"; }
  elseif($type[$i] == "image/pjpeg") {
    $datei[$i] = "unterkunft_bilder/".time()."_".$anbietername.".jpg";  }
  else {
    $datei[$i] = ""; 
	
	if($type[$i] != "image/gif" OR $type[$i] != "image/pjpeg") { 
          $err[] = "nur gif und jpeg Dateien dürfen hochgeladen werden."; 
     } 
     if($size[$i] > "204800") { 
          $err[] = "Die Datei welche du hochladen willst, ist zu gross!<br>Maximale Dateigrosse beträgt 200 KB!"; 
     } 
     else { 
          foreach($err as $error) 
          echo "$error<br>"; 
     } 
}  
  if(count($err) < 1) {
  $upload = @move_uploaded_file($tmp,$dir); }

lg disc
 
Zuletzt bearbeitet:

Discman

Mitglied
naja wenn keiner nen Fehler findet werd ich wohl selber rumprobieren damit ich das hier fertig bekomme...

aber erst mal Buchhaltung machen :)

lg disc
 

deepthought

Grünschnabel
Original geschrieben von Discman
...
Das Problem ist ich krieg immer einen Parse Error aber in einer Zeile wo nur der body geschlossen wird...

Parse error: parse error, unexpected $ in XXX on line 153 :confused:


Vielleicht hat irgendwer ne Idee ob ich einen Fehler gemacht habe in dem PHP Code
Schwer zu sagen wo die Zeile sein soll und ein <body> tag sehe ich auch nicht.
Aber ich glaube, Du hast eine Klammer übersehen, die die zweite else Anweisung schließen sollte (also noch eine Klammer unter dem letzten "echo"). Habs aber nicht getestet...
 
Zuletzt bearbeitet:

Neue Beiträge

Forum-Statistiken

Themen
272.360
Beiträge
1.558.622
Mitglieder
187.833
Neuestes Mitglied
SirrDansen