| Neuer Benutzer
Registriert seit: 05.10.2008
Beiträge: 13
| Bildupload - wie kann ich den Bildnamen im Verzeichnis ändern Hallo zusammen
Ich habe ein super Script erhalten, welche ich ein grosses (_norm) und ein kleines Bild (_small) in eine upload Ordner erstellt nach dem hochladen. Der Bildname wird zusätzlich in eine Datenbank geschrieben.
Beim Problem ist nun, dass dem Namen der Bilder immer ein _norm und ein _small zum Bildname hinzugefügt wird, in der Datenbank jedoch wird der
Name normal hinterlegt. Nun kann ich nicht einfach das Datenbankfeld auf einer anderen Seite auslesen, da ja die Bilder nicht mit dem Namen in der Datenbank identisch sind.
Meine Frage ist nun, kann ich dem norm Bild den gleichen Namen im Ordner geben wie in der Datenbank steht?
Hier wäre das Script: PHP-Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> </head> <body> <?php include('sicher/inc.php'); // Der Link zum Uploadverzeichnis $bildlink = 'bildup' ; // Für die DB, im Beispiel immer Satz-Nr. 1 $selection = 1 ; // Bildbreite der zu erstellenden Bilder in Pixel festlegen. $bildbreite_norm = '200'; $bildbreite_small = '50'; // löschen -------------------------------------------------------------------- if (isset($_POST['delete'])) { $bild_bild = strip_tags($_POST['bild_bild']); $bild_db = strip_tags($_POST['bild_db']); // löschen in Ordner $bildteil = split("[.]",$bild_bild) ; $bild_bild_norm = $bildteil[0].'_norm.'.$bildteil[1] ; $bild_bild_small = $bildteil[0].'_small.'.$bildteil[1] ; // Fehlermeldung vermeiden, falls Datei nicht vorhanden! $dateivorhanden_norm = file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_bild_norm) ; if ($dateivorhanden_norm) { unlink( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_bild_norm ) ; } $dateivorhanden_small = file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_bild_small) ; if ($dateivorhanden_small) { unlink( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_bild_small ) ; } // leeren in der Datenbank $query = " UPDATE bildup SET ".$bild_db." = '' WHERE id_bild = '".$selection."' " ; $result = mysql_query($query) ; } // hochladen ------------------------------------------------------------------ if (isset($_POST['submit'])) { $id_bild = strip_tags($_POST['id_bild']); $verfall = strip_tags($_POST['verfall']); // Hier nicht verwendet! $bildnummer = strip_tags($_POST['bildnummer']); $dateiname = $_FILES['datei']['name'] ; $dateitype = $_FILES['datei']['type'] ; $dateisize = $_FILES['datei']['size'] ; // prüfen vor hochladen if (empty($dateiname)) { $fehlermeldung = '<span class="rot"><br /><br /> Du musst eine Datei angeben!<br /><br /></span>' ; } elseif ( $dateisize > '524000') { $fehlermeldung = '<span class="rot"><br /><br /> Deine Datei überschreitet die erlaubte Datei-Grösse von 500 kByte!<br /><br /></span>' ; } elseif ( strlen( $dateiname ) > '25') { $dateinamengroesse = strlen($dateiname) - 25 ; $fehlermeldung = '<span class="rot"><br /><br /> Der Dateiname überschreitet die maximal erlaubte Zeichenlänge um <strong>'.$dateinamengroesse.'</strong>Zeichen!<br /> <br /></span>' ; } elseif ( $dateitype == 'image/jpeg' || $dateitype == 'image/pjpeg' || $dateitype == 'image/x-png' ) { //Wandelt einige Sonderzeichen um $dateiname1 = strtr("$dateiname", " äöü�*ôûáèéçß", "_aouaouaeecs") ; //Wandelt den Dateinamen in Kleinbuchstaben um $dateiname2 = strtolower("$dateiname1") ; $bildteil = split("[.]",$dateiname2) ; $dateivorhanden = file_exists($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bildteil[0].'_norm.'.$bildteil[1]) ; if ($dateivorhanden) { $fehlermeldung = '<span class="rot"><br /><br /> Eine Datei mit dem Dateinamen <strong>'.$dateiname2.'</strong> ist bereits vorhanden, bitte wähle einen anderen Namen.<br /> <br /></span>' ; } else { // hochladen der Ursprungsdatei ----------------------------------------- move_uploaded_file( $_FILES['datei']['tmp_name'], $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ; // copy in Endverzeichnis // copy($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2, $_SERVER['DOCUMENT_ROOT'].'/??????/'.$dateiname2 ) ; // löschen temp-datei // unlink( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ; // nun Grösse bestimmen und berechnen $gross = getimagesize( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ; $breite = $gross[0] ; $hoehe = $gross[1] ; $typ = $gross[2] ; $hoehe_norm = $hoehe * $bildbreite_norm / $breite ; $image_norm = imagecreatetruecolor( $bildbreite_norm , $hoehe_norm ) ; $hoehe_small = $hoehe * $bildbreite_small / $breite ; $image_small = imagecreatetruecolor( $bildbreite_small , $hoehe_small ) ; // neue Bildnamen $bild_s = split("[.]",$dateiname2); $dateiname2_norm = $bild_s[0].'_norm.'.$bild_s[1] ; $dateiname2_small = $bild_s[0].'_small.'.$bild_s[1] ; // Normbild erstellen switch ($typ) { case 2: $image = imagecreatefromjpeg( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ; break; case 3: $image = imagecreatefrompng( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ; break; } imagecopyresampled($image_norm, $image, 0, 0, 0, 0, $bildbreite_norm, $hoehe_norm, $breite, $hoehe); switch ($typ) { case 2: imagejpeg($image_norm, $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2_norm , 100 ); break; case 3: imagepng($image_norm, $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2_norm ); break; } // Smallbild erstellen switch ($typ) { case 2: $image = imagecreatefromjpeg( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ; break; case 3: $image = imagecreatefrompng( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ; break; } imagecopyresampled($image_small, $image, 0, 0, 0, 0, $bildbreite_small, $hoehe_small, $breite, $hoehe); switch ($typ) { case 2: imagejpeg($image_small, $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2_small ); break; case 3: imagepng($image_small, $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2_small ); break; } // Ursprüngliches Bild löschen unlink( $_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$dateiname2 ) ; // zur Probe auskommentieren! // DB eintragen $query = "UPDATE bildup SET ".$bildnummer." = '".$dateiname2."', verfall = ".$verfall." WHERE id_bild = ".$id_bild." " ; mysql_query($query, $conn); $fehlermeldung = '<br /><br />Dein Foto <strong>'.$dateiname2.'</strong> wurde erfolgreich abgeschickt!<br /><br />' ; } } else { $fehlermeldung = '<span class="rot"><br /><br /> Es werden nur Dateien von folgendem Typ zum Upload akzeptiert:<br /><br /> <strong>jpeg, jpg, jpe, png</strong><br /><br /> Dein Datei-Typ: '.$dateitype.'<br /><br /></span>'; } // auf NULL setzen --------------------------- $submit = "" ; $dateityp = "" ; $dateiname = "" ; $dateiname2 = "" ; $dateiname2_small = "" ; $hoehe = "" ; $breite = "" ; } // aus DB zur Anzeige --------------------------------------------------------- $query = " SELECT * FROM bildup WHERE id_bild = '".$selection."' " ; $result = mysql_query($query, $conn); $row = mysql_fetch_array($result); $bild_1 = $row['bild_1'] ; if ($bild_1 != '') { $bild_1_s = split("[.]",$bild_1); $bild_1_norm = $bild_1_s[0].'_norm.'.$bild_1_s[1]; $bild_1_small = $bild_1_s[0].'_small.'.$bild_1_s[1]; $gross1_norm = getimagesize($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_1_norm); $gross1_small = getimagesize($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_1_small); } $bild_2 = $row['bild_2'] ; if ($bild_2 != '') { $bild_2_s = split("[.]",$bild_2); $bild_2_norm = $bild_2_s[0].'_norm.'.$bild_2_s[1]; $bild_2_small = $bild_2_s[0].'_small.'.$bild_2_s[1]; $gross2_norm = getimagesize($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_2_norm); $gross2_small = getimagesize($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_2_small); } $bild_3 = $row['bild_3'] ; if ($bild_3 != '') { $bild_3_s = split("[.]",$bild_3); $bild_3_norm = $bild_3_s[0].'_norm.'.$bild_3_s[1]; $bild_3_small = $bild_3_s[0].'_small.'.$bild_3_s[1]; $gross3_norm = getimagesize($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_3_norm); $gross3_small = getimagesize($_SERVER['DOCUMENT_ROOT'].'/'.$bildlink.'/'.$bild_3_small); } // welche Bilder werden als nächstes hochgeladen if ( $bild_3 == "" ) { $bildnr = "bild_3" ; $titeltext = "Foto 3, Bildtitel 1" ; } if ( $bild_2 == "" ) { $bildnr = "bild_2" ; $titeltext = "Foto 2, Bildtitel 2" ; } if ( $bild_1 == "" ) { $bildnr = "bild_1" ; $titeltext = "Foto 1, Bildtitel 3" ; } ?> <h2>Beispiel</h2> <center> <?php echo $fehlermeldung ; ?> <table> <colgroup> <col width="50" /> <col width="200" /> <col /> </colgroup> <tr> <td> <strong>Foto 1</strong><br /> <?php if ( $bild_1 != "" ) { echo ' <div> <img src="/'.$bildlink.'/'.$bild_1_small.'" alt="Bildtitel 1" title="Bildtitel 1" width="'.$bildbreite_small.'" height="'.$gross1_small[1].'" /> </div> </td> <td> Bildtitel 1<div> <img src="/'.$bildlink.'/'.$bild_1_norm.'" alt="Bildtitel 1" title="Bildtitel 1" width="'.$bildbreite_norm.'" height="'.$gross1_norm[1].'" /> </div> </td> <td class="rechts"> '.$bild_1.'<br /><br /> <form action ="'.htmlspecialchars($_SERVER['PHP_SELF']).'" method ="post" name="meldung"> <input type="hidden" name="bild_db" value="bild_1" /> <input type="hidden" name="bild_bild" value="'.$bild_1.'" /> <input class="norm" type="submit" name="delete" value="Löschen" /> </form> '; } else { echo ' </td> <td>Bildtitel 1</td> <td class="rechts">Kein Bild! ' ; } ?> </td> </tr> <tr><td colspan="3"><hr /></td></tr> <tr> <td> <strong>Foto 2</strong><br /> <?php if ( $bild_2 != "" ) { echo ' <div> <img src="/'.$bildlink.'/'.$bild_2_small.'" alt="Bildtitel 2" title="Bildtitel 2" width="'.$bildbreite_small.'" height="'.$gross2_small[1].'" /> </div> </td> <td> Bildtitel 2<div> <img src="/'.$bildlink.'/'.$bild_2_norm.'" alt="Bildtitel 2" title="Bildtitel 2" width="'.$bildbreite_norm.'" height="'.$gross2_norm[1].'" /> </div> </td> <td class="rechts"> '.$bild_2.'<br /><br /> <form action ="'.htmlspecialchars($_SERVER['PHP_SELF']).'" method ="post" name="meldung"> <input type="hidden" name="bild_db" value="bild_2" /> <input type="hidden" name="bild_bild" value="'.$bild_2.'" /> <input class="norm" type="submit" name="delete" value="Löschen" /> </form> '; } else { echo ' </td> <td>Bildtitel 2</td> <td class="rechts">Kein Bild! ' ; } ?> </td> </tr> <tr><td colspan="3"><hr /></td></tr> <tr> <td> <strong>Foto 3</strong><br /> <?php if ( $bild_3 != "" ) { echo ' <div> <img src="/'.$bildlink.'/'.$bild_3_small.'" alt="Bildtitel 3" title="Bildtitel 3" width="'.$bildbreite_small.'" height="'.$gross3_small[1].'" /> </div> </td> <td> Bildtitel 3<div> <img src="/'.$bildlink.'/'.$bild_3_norm.'" alt="Bildtitel 3" title="Bildtitel 3" width="'.$bildbreite_norm.'" height="'.$gross3_norm[1].'" /> </div> </td> <td class="rechts"> '.$bild_3.'<br /><br /> <form action ="'.htmlspecialchars($_SERVER['PHP_SELF']).'" method ="post" name="meldung"> <input type="hidden" name="bild_db" value="bild_3" /> <input type="hidden" name="bild_bild" value="'.$bild_3.'" /> <input class="norm" type="submit" name="delete" value="Löschen" /> </form> '; } else { echo ' </td> <td>Bildtitel 3</td> <td class="rechts">Kein Bild! ' ; } ?> </td> </tr> </table> </center> <?php // Löschzeitpunkt festlegen, hier nicht verwendet! $verfall = time() + 3600 ; // jetzt plus 60 Min. // Formular zum Hochladen ----------------------------------------------------- if ( $bild_1 == "" || $bild_2 == "" || $bild_3 == "" ) { echo ' <form method="post" action="'.htmlspecialchars($_SERVER['PHP_SELF']).'" enctype="multipart/form-data" name="meldung"> <table> <tr> <td> Es wird hochgeladen: <strong>'.$titeltext.'<br /> Dateiname:</strong> <input type="file" name="datei" size="80" /> </td> </tr> <tr> <td> <input type="hidden" name="id_bild" value="'.$selection.'" /> <input type="hidden" name="verfall" value="'.$verfall.'" /> <input type="hidden" name="bildnummer" value="'.$bildnr.'" /> <input class="norm" type="submit" value="hochladen" name="submit" /> </td> </tr> </table> </form> '; } else { echo '<center><div class="rot">Es können keine weiteren Bilder hochgeladen werden.</div></center>' ; } ?> <!-- Quelle Script: http://www.zudila.ch/scripte/php_bildup.php Zudila Bildupload v1.2, GPL --> </body> </html> Für eine Lösung wäre ich sehr dankbar.
Gruss
Andi |