Bilder Upload

Status
Nicht offen für weitere Antworten.

Worka

Mitglied
Hallo Leute,

ich habe eine Eingabemaske mit PHP und MySQL nun erfolgreich hinbekommen, das eintragen, bearbeiten und löschen funktioniert einwandfrei... Das ist immer schon ein kleines Erfolgserlebnis für ein Newbie....

Nun möchte ich noch ein Bilder Upload hinzufügen. Das Problem ich weiß noch nicht genau, wie ich an die Sache ran gehen muss. Ich habe nun 10 Input Felder und möchte nun, das man ein bild uploaden kann zu dem jeweiligen Eintrag. Wahrscheinlich denk ich noch zu kompleziert. Ich weiß nicht, wie ich das mache, das er immer zu den jeweiligen eintrag auch den richtgen Link zum Bild hat. Muss man den Dateiennamen des Bildes auch immer aufsteigend speichern usw... Das sind Fragen da stolper ich noch drüber. Vielleicht hat ja mal einer Lust, hier zu schreiben, wie ich genau an die Sache ran gehen muss... Dadrüber wäre ich sehr dankbar :rolleyes:
 
Hast Du zufällig in deiner Tabelle ne id die auto_increment ist ?
Wenn ja, gib dem Bild einfach als Dateinamen den Wert der id.
Hat den Vorteil, dass du keine Bilder mit gleichem Namen hast, und du dir beim uploaden keinen Kopf um den Dateinamen machen musst.

Nen weiterer Vorteil ist, dass du das Bild auch leichter löschen kannst, wenn du den Eintrag aus der db löscht.
PHP:
$pfad = "ORDNER IN WELCHES DAS BILD GESPEICHERT WERDEN SOLL";

$tempname = $_FILES['file']['tmp_name']; 
$name = $_FILES['file']['name'];
$ext = substr($name,-4);
// id wird aus der db geholt
$get_id_qry = "SELECT id FROM $tab order by id desc limit 1";
$get_id_result = mysql_query($get_id_qry);
$get_id = mysql_fetch_array($get_id_result);
//falls noch kein Eintrag in der db wird die pic_id auf 0 gesetzt, ansonsten wird die id die sich in der db befindet um 1 erhöht
if($get_id[id] == '')
  { $pic_id = '0'; }
else
  { $pic_id = $get_id[id] + 1; }

copy("$tempname", "$pfad$pic_id$ext");
 
Zuletzt bearbeitet:
Vielen Dank

Ich werde es mal ausprobieren, du hast mich auf gute Gedanken gebracht .. Vielen Dank PNX

Eine Frage, warum hast du denn "$ext = " -4 , zählt die .jpg auch mit zur Zeichenkette, so das er immer die nummer hat , richtig
Wenn ja, was ist denn, wenn es id50.jpg gibt, dann beschränkt der sytax, doch nur wieder auf 0 richtig ?


Aber vielen DAnk trotzdem nochmal....
 
Warum nur

Warum zeigt er mir diesen Fehler an :

Parse error: parse error, unexpected '{' in D:\php5xampp-dev\htdocs\tester\bilderupload\upload.php on line 23

Es ist die Zeile : { $pic_id = '0'; }

Nur warum error ?

PHP:
<form enctype="multipart/form-data" action="upload4.php" method="post"> 
<input name="file" type="file"><br> 
<input type="submit" value="hochladen"> 
</form> 

<?

mysql_connect("localhost","xxxx","xxx");
mysql_select_db("xxx");

$pfad = "/bilder"; 

$tempname = $_FILES['file']['tmp_name']; 
$name = $_FILES['file']['name']; 
$ext = substr($name,-4); 

 
$get_id_qry = "SELECT id FROM bilderli order by id desc limit 1"; 
$get_id_result = mysql_query($get_id_qry); 
$get_id = mysql_fetch_array($get_id_result); 

$if($get_id[id] == '') 
  { $pic_id = '0'; } 
else 
  { $pic_id = $get_id[id] + 1; } 

copy("$tempname", "$pfad$pic_id$ext");
?>
 
Der Fehler kommt weil du nen $ vorm if stehen hast :)

zu:

$ext = substr($name,-4);

Das hab ich bei mir so gemacht, damit ich z.B. auch überprüfen kann welche Endung die Bilddatei hat.
Kann man zwar auch über $type = $_FILES['file']['type']; machen, aber ich finds so besser. Kann man dann leichter für andere Upload-sripte in denen z.B. nur zips oder so hochgeladen werden sollen.

$ext entspricht immer den letzten 4 Zeichen der Datei, d.h. der Endung + dem Punkt.

Edit:
PHP:
if($get_id[id] == '') 
  { $pic_id = '1'; }

Anstatt 0 muss da 1 hin.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Zurück