PHP & MySQL: Bildupload v1.2
<!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>