Wiedermal Problem mit Upload Script

Cyber-GFX

Mitglied
Hallo Community, kann mir jemand sagen, wieso das Bild nichtmehr Hochgeladen wird?

PHP:
<?php
/**
** Variablen declaration:
*/
ini_set("max_execution_time", "300");  //maximale ausfuehrzeit des scriptes festlegen, nach 300 sek abbruch!
ini_set("upload_max_filesize", "1.55M"); //maximale upload groesse festlegen
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'); //Sprach und Format einstellung
$path_thumbs = "upload2/files/thumbs/"; //Pfad auf Webserver fuer Thumbnails
$path_images = "upload2/files/"; //Pfad auf Webserver fuer Original Bilder
$x_size      = "100";        //Bild maximal 100px breit
$y_size      = "100";        //Bild maximal 100px hoch
$quali       = "75";         //Jpeg Qualitaet bei 75%
$error       = "";
/**
** Die Funktion resize_img uebernimmt ein vorhandenes Bild "$img" aus dem Verzeichnis "$path_img"
** und verkleinert das Bild auf die breite "$x_size" und hoehe "$y_size" und reduziert die 
** qualität auf "$quali" das verkleinerte Bild wird nach anschliessend ins Verzeichnis "$path_thumbs"
** kopiert. Das orginal Bild bleibt vorhanden.
*/
function resize_img($img, $path_images, $path_thumbs, $x_size, $y_size, $quali )
{
    $file = $path_images.$img;
    $infos = getimagesize($file);
    if($infos[2] == 2) {
    // jpeg
    $src_img = imagecreatefromjpeg($file);
    } elseif($infos[2] == 3) {
      // png
    $src_img = imagecreatefrompng($file);
    } elseif($infos[2] == 1) {
      // gif
    $src_img = imagecreatefromgif($file);
    }
    if ($src_img != ''){
        $imageinfo = getimagesize($file);
        if($imageinfo[0]==$imageinfo[1]){
            $new_w = $x_size;
            $new_h = $y_size;
        }elseif($imageinfo[0]>$imageinfo[1]){
            $new_w = $x_size;
            $ratio = $imageinfo[0]/$x_size;
            $new_h = $imageinfo[1]/$ratio;
        }elseif($imageinfo[0]<$imageinfo[1]){
            $new_h = $y_size;
            $ratio = $imageinfo[1]/$x_size;
            $new_w = $imageinfo[0]/$ratio;
        }
         $dst_img = imagecreatetruecolor($new_w,$new_h);
         imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $new_w,$new_h, imagesx($src_img), imagesy($src_img));
         imagejpeg( $dst_img,"./".$path_thumbs.$img,$quali);
    }
}
?>
<?php
if(isset($upload)){
    #print_r($_FILES['file']);
    /**
    ** Es wird ueberprueft, ob eine Datei hochgeladen wurde, kein fehler beim upload passiert
    ** und die Datei kleiner als 1,5MB ist
    */
    if (isset($_FILES['file'])AND ! $_FILES['file']['error'] AND $_FILES['file']['size'] < 1550000) 
    {
        /**
        ** Ueberpruefung ob das Bild konform ist in den ausmassen und im Bildtyp
        ** Wenn ja wird es durch die php funktion "move_uploaded_file" in das "$path_images" Bilder Verzeichnis kopiert
        */
        $is_image = getimagesize($_FILES['file']['tmp_name']);
        #print_r($is_image);
        if($is_image[2] != "" AND $is_image[0] <= 1024 AND $is_image[1] <= 1024){;
            $uploadedfile = $_FILES['file']['name'];
            $uploadedfile = preg_replace("[^a-zA-Z0-9]","",$uploadedfile);
            #$uploadedfile = preg_replace ('|\W|', '', $uploadedfile);
            $uploadedfile = eregi_replace ("[áéíóúâêôûàèìòùäöü|\/890@€/ ]","", $uploadedfile);
            /**
            ** Ist das Bild bereits vorhanden, bzw der Dateiname bricht das Script ab.
            */
            if(is_file($path_images.$uploadedfile))
            { 
                $error .= "<br />Sorry, der Dateiname existiert bereits!"; 
            }else{
                move_uploaded_file($_FILES['file']['tmp_name'], $path_images.$uploadedfile);
            }
        }else{
            /**
            ** error 1:
            ** Das Bild ist nicht vom Typ JPG, GIF oder PNG
            ** oder es ist groesser als 1024 x 1024 pixel
            */
            $error .= "<br />Sorry, Es sind nur Bilder vom Typ JPG, GIF und PNG erlaubt";
            $error .= "<br />Die Datei '<strong>".$_FILES['file']['name']."</strong>' ist kein erlaubtes Bild";
            $error .= "<br />TIP: Das Bild hat ".$is_image[0]."x".$is_image[1]." px, erlaubt sind nur max. 1024x1024 px! <br />";
        }
    }else{
        /**
        ** error 2:
        ** Das Bild ist nicht vom Typ JPG, GIF oder PNG oder gar keine Bild datei
        ** die groeße der Datei ist kleiner 0 Bytes oder ueber 1.5 MB
        */
        $error .= "<br />Sorry, Es sind nur Bilder vom Typ JPG, GIF und PNG erlaubt";
        $error .= "<br />Die Datei '<strong>".$_FILES['file']['name']."</strong>' ist kein erlaubtes Bild.";
        $error .= "<br />TIP: Das Datei hat ".number_format($_FILES['file']['size'],"","",".")." Bytes, erlaubt sind nur 1.500.000 Bytes<br />";
    }
    if ($error == ""){
        /**
        ** Mit der Upload-Datei scheint alles in Ordnung zu sein, sie wurde hochgeladen, wird jetzt verkleinert
        ** mit der funktion "resize_img" und wird dann angezeigt.
        ** Die Ausgaben werden generiert.
        */
        resize_img($uploadedfile, $path_images, $path_thumbs, $x_size, $y_size, $quali );
        $px = getImagesize($path_images.$uploadedfile);
        $forum_link1 = '<input style="width:450px;" type="text" value="[ url=http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'[ IMG]http://'.$GLOBALS[SERVER_NAME].'/'.$path_thumbs.$uploadedfile.'[ /IMG][ /url]"> Link für Foren';
        $link = '<a href="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'" target="_blank"><IMG SRC="http://'.$GLOBALS[SERVER_NAME].'/'.$path_thumbs.$uploadedfile.'"></a>';
        $forum_link2 = '<input style="width:450px;" type="text" value="'.htmlentities($link).'"> Link für Websites';
        $forum_link3 = '<input style="width:450px;" type="text" value="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'"> <a href="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'" target="_blank">Show</a> Bild an Freunde ';
        $forum_link4 = '<input style="width:450px;" type="text" value="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'"> Direkter Link ';
        $image_thumb = "<IMG SRC='http://".$GLOBALS[SERVER_NAME]."/".$path_thumbs.$uploadedfile."' >";
        ?>
        <table class="text" align="center">
        <tr><td colspan="2"><?php echo $error ?></td></tr>
        <tr><td colspan="2"><?php echo $forum_link1 ?></td></tr>
        <tr><td colspan="2"><?php echo $forum_link2 ?></td></tr>
        <tr><td colspan="2"><?php echo $forum_link3 ?></td></tr>
        <tr><td colspan="2"><?php echo $forum_link4 ?></td></tr>
        <tr><td width="25%"><?php echo $image_thumb ?></td><td width="75%"><? echo $image_info1 ?></td></tr>
        </table>
        <?php    
    }else{
        /**
        ** Es wurde ein error beim Upload erzeugt
        */
        ?>
        <table class="text" align="center">
        <tr><td><?php echo $error ?></td></tr>
        </table>
        <?php
    }    
}else{    
/**
** Standart aufruf des Scriptes, zum Datei auswaehlen und hochladen
*/
?>

Beim Hochladen kommt Folgender Fehler:

PHP:
Warning: move_uploaded_file(upload2/files/Sonnenuntergang.jpg): failed to open stream: Datei oder Verzeichnis nicht gefunden in /srv/www/web4/html/upload2/upload.php on line 81

Warning: move_uploaded_file(): Unable to move '/srv/www/web4/phptmp/phpW7lqK4' to 'upload2/files/Sonnenuntergang.jpg' in /srv/www/web4/html/upload2/upload.php on line 81

Warning: getimagesize(): Unable to access upload2/files/Sonnenuntergang.jpg in /srv/www/web4/html/upload2/upload.php on line 23

Warning: getimagesize(upload2/files/Sonnenuntergang.jpg): failed to open stream: Datei oder Verzeichnis nicht gefunden in /srv/www/web4/html/upload2/upload.php on line 23

Warning: getimagesize(): Unable to access upload2/files/Sonnenuntergang.jpg in /srv/www/web4/html/upload2/upload.php on line 110

Warning: getimagesize(upload2/files/Sonnenuntergang.jpg): failed to open stream: Datei oder Verzeichnis nicht gefunden in /srv/www/web4/html/upload2/upload.php on line 110

MFG
 
Warning: move_uploaded_file(): Unable to move '/srv/www/web4/phptmp/phpW7lqK4' to 'upload2/files/Sonnenuntergang.jpg' in /srv/www/web4/html/upload2/upload.php on line 81


Versuchs mal beim Zielordner auch nen kompletten Pfad anzugeben, also
/srv/www/web4/html/upload2/files/
 
Das liegt daran das du ein "./" für den neuen Speicherort des Thumbs voranstellst.

imagejpeg( $dst_img,"./".$path_thumbs.$img,$quali);

$path_thumbs ebenfalls auf den kompletten Pfad umstellen (was du anscheinend schon gemacht hast) und die Zeile ändern in

imagejpeg( $dst_img, $path_thumbs.$img,$quali);


Edit:
Schau dir die URL mal zu dem Bild an. Fällt dir was auf? Das ist ein Mix aus deiner Web URL und dem absoluten Pfad.
Du brauchst für das Speichern, moven, resizen eine Variable mit dem absoluten Filesystem Pfad zum Ziel => "/srv/...usw".
Dann brauchst du noch einen Pfad, der ausgehen vom deinem WebRoot zum Photo geht.
Dein Webroot dürfte der "html" Ordner sein. Also ist der relative Pfad für die Webadresse vom Photo upload2/files/.

Das sind 2 verschiedene Sachen.
 
Zuletzt bearbeitet:
so, hier der Überarbeitete Code:

PHP:
<?php
/**
** Variablen declaration:
*/
ini_set("max_execution_time", "300");  //maximale ausfuehrzeit des scriptes festlegen, nach 300 sek abbruch!
ini_set("upload_max_filesize", "1.55M"); //maximale upload groesse festlegen
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'); //Sprach und Format einstellung
$path_thumbs = "/srv/www/web4/html/upload2/files/thumbs/"; //Pfad auf Webserver fuer Thumbnails
$path_images = "upload2/files/"; //Pfad auf Webserver fuer Original Bilder
$x_size      = "100";        //Bild maximal 100px breit
$y_size      = "100";        //Bild maximal 100px hoch
$quali       = "75";         //Jpeg Qualitaet bei 75%
$error       = "";
/**
** Die Funktion resize_img uebernimmt ein vorhandenes Bild "$img" aus dem Verzeichnis "$path_img"
** und verkleinert das Bild auf die breite "$x_size" und hoehe "$y_size" und reduziert die 
** qualität auf "$quali" das verkleinerte Bild wird nach anschliessend ins Verzeichnis "$path_thumbs"
** kopiert. Das orginal Bild bleibt vorhanden.
*/
function resize_img($img, $path_images, $path_thumbs, $x_size, $y_size, $quali )
{
    $file = $path_images.$img;
    $infos = getimagesize($file);
    if($infos[2] == 2) {
    // jpeg
    $src_img = imagecreatefromjpeg($file);
    } elseif($infos[2] == 3) {
      // png
    $src_img = imagecreatefrompng($file);
    } elseif($infos[2] == 1) {
      // gif
    $src_img = imagecreatefromgif($file);
    }
    if ($src_img != ''){
        $imageinfo = getimagesize($file);
        if($imageinfo[0]==$imageinfo[1]){
            $new_w = $x_size;
            $new_h = $y_size;
        }elseif($imageinfo[0]>$imageinfo[1]){
            $new_w = $x_size;
            $ratio = $imageinfo[0]/$x_size;
            $new_h = $imageinfo[1]/$ratio;
        }elseif($imageinfo[0]<$imageinfo[1]){
            $new_h = $y_size;
            $ratio = $imageinfo[1]/$x_size;
            $new_w = $imageinfo[0]/$ratio;
        }
         $dst_img = imagecreatetruecolor($new_w,$new_h);
         imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $new_w,$new_h, imagesx($src_img), imagesy($src_img));
         imagejpeg( $dst_img, $path_thumbs.$img,$quali);
    }
}
?>
<?php
if(isset($upload)){
    #print_r($_FILES['file']);
    /**
    ** Es wird ueberprueft, ob eine Datei hochgeladen wurde, kein fehler beim upload passiert
    ** und die Datei kleiner als 1,5MB ist
    */
    if (isset($_FILES['file'])AND ! $_FILES['file']['error'] AND $_FILES['file']['size'] < 1550000) 
    {
        /**
        ** Ueberpruefung ob das Bild konform ist in den ausmassen und im Bildtyp
        ** Wenn ja wird es durch die php funktion "move_uploaded_file" in das "$path_images" Bilder Verzeichnis kopiert
        */
        $is_image = getimagesize($_FILES['file']['tmp_name']);
        #print_r($is_image);
        if($is_image[2] != "" AND $is_image[0] <= 1024 AND $is_image[1] <= 1024){;
            $uploadedfile = $_FILES['file']['name'];
            $uploadedfile = preg_replace("[^a-zA-Z0-9]","",$uploadedfile);
            #$uploadedfile = preg_replace ('|\W|', '', $uploadedfile);
            $uploadedfile = eregi_replace ("[áéíóúâêôûàèìòùäöü|\/890@€/ ]","", $uploadedfile);
            /**
            ** Ist das Bild bereits vorhanden, bzw der Dateiname bricht das Script ab.
            */
            if(is_file($path_images.$uploadedfile))
            { 
                $error .= "<br />Sorry, der Dateiname existiert bereits!"; 
            }else{
                move_uploaded_file($_FILES['file']['tmp_name'], $path_images.$uploadedfile);
            }
        }else{
            /**
            ** error 1:
            ** Das Bild ist nicht vom Typ JPG, GIF oder PNG
            ** oder es ist groesser als 1024 x 1024 pixel
            */
            $error .= "<br />Sorry, Es sind nur Bilder vom Typ JPG, GIF und PNG erlaubt";
            $error .= "<br />Die Datei '<strong>".$_FILES['file']['name']."</strong>' ist kein erlaubtes Bild";
            $error .= "<br />TIP: Das Bild hat ".$is_image[0]."x".$is_image[1]." px, erlaubt sind nur max. 1024x1024 px! <br />";
        }
    }else{
        /**
        ** error 2:
        ** Das Bild ist nicht vom Typ JPG, GIF oder PNG oder gar keine Bild datei
        ** die groeße der Datei ist kleiner 0 Bytes oder ueber 1.5 MB
        */
        $error .= "<br />Sorry, Es sind nur Bilder vom Typ JPG, GIF und PNG erlaubt";
        $error .= "<br />Die Datei '<strong>".$_FILES['file']['name']."</strong>' ist kein erlaubtes Bild.";
        $error .= "<br />TIP: Das Datei hat ".number_format($_FILES['file']['size'],"","",".")." Bytes, erlaubt sind nur 1.500.000 Bytes<br />";
    }
    if ($error == ""){
        /**
        ** Mit der Upload-Datei scheint alles in Ordnung zu sein, sie wurde hochgeladen, wird jetzt verkleinert
        ** mit der funktion "resize_img" und wird dann angezeigt.
        ** Die Ausgaben werden generiert.
        */
        resize_img($uploadedfile, $path_images, $path_thumbs, $x_size, $y_size, $quali );
        $px = getImagesize($path_images.$uploadedfile);
        $forum_link1 = '<input style="width:450px;" type="text" value="[ url=http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'[ IMG]http://'.$GLOBALS[SERVER_NAME].'/'.$path_thumbs.$uploadedfile.'[ /IMG][ /url]"> Link für Foren';
        $link = '<a href="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'" target="_blank"><IMG SRC="http://'.$GLOBALS[SERVER_NAME].'/'.$path_thumbs.$uploadedfile.'"></a>';
        $forum_link2 = '<input style="width:450px;" type="text" value="'.htmlentities($link).'"> Link für Websites';
        $forum_link3 = '<input style="width:450px;" type="text" value="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'"> <a href="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'" target="_blank">Show</a> Bild an Freunde ';
        $forum_link4 = '<input style="width:450px;" type="text" value="http://'.$GLOBALS[SERVER_NAME].'/'.$path_images.$uploadedfile.'"> Direkter Link ';
        $image_thumb = "<IMG SRC='http://".$GLOBALS[SERVER_NAME]."/".$path_thumbs.$uploadedfile."' >";
        ?>
        <table class="text" align="center">
        <tr><td colspan="2"><?php echo $error ?></td></tr>
        <tr><td colspan="2"><?php echo $forum_link1 ?></td></tr>
        <tr><td colspan="2"><?php echo $forum_link2 ?></td></tr>
        <tr><td colspan="2"><?php echo $forum_link3 ?></td></tr>
        <tr><td colspan="2"><?php echo $forum_link4 ?></td></tr>
        <tr><td width="25%"><?php echo $image_thumb ?></td><td width="75%"><? echo $image_info1 ?></td></tr>
        </table>
        <?php    
    }else{
        /**
        ** Es wurde ein error beim Upload erzeugt
        */
        ?>
        <table class="text" align="center">
        <tr><td><?php echo $error ?></td></tr>
        </table>
        <?php
    }    
}else{    
/**
** Standart aufruf des Scriptes, zum Datei auswaehlen und hochladen
*/
?> 
<br />
<br />

Hier kannst du Eigene Bilder hochladen; Die Bilder werden dann automatisch unter Pics hochgespielt;<br />
Es können nur jpeg/jpg/png/gif Dateien hochgeladen werden; <br />
(nach 300 Sekunden bricht der upload ab);<br />
Bitte warte solange bis der Browser fertig meldet, dies kann ja nach gr&ouml;&szlig;e des Bildes etwas dauern<br /><br />

<form method="post" enctype="multipart/form-data" action="<?php echo $PHP_SELF ?>"> 
    <input type="file" name="file"><br>
    <input type="submit" name="upload" value="Upload">
</form>



<?php
}
?>

Jetzt kommt aber Folgender Fehler:

PHP:
Warning: move_uploaded_file(upload2/files/Wasserlilien.jpg): failed to open stream: Datei oder Verzeichnis nicht gefunden in /srv/www/web4/html/upload2/upload.php on line 81

Warning: move_uploaded_file(): Unable to move '/srv/www/web4/phptmp/phpjYXNwi' to 'upload2/files/Wasserlilien.jpg' in /srv/www/web4/html/upload2/upload.php on line 81

Warning: getimagesize(): Unable to access upload2/files/Wasserlilien.jpg in /srv/www/web4/html/upload2/upload.php on line 23

Warning: getimagesize(upload2/files/Wasserlilien.jpg): failed to open stream: Datei oder Verzeichnis nicht gefunden in /srv/www/web4/html/upload2/upload.php on line 23

Warning: getimagesize(): Unable to access upload2/files/Wasserlilien.jpg in /srv/www/web4/html/upload2/upload.php on line 110

Warning: getimagesize(upload2/files/Wasserlilien.jpg): failed to open stream: Datei oder Verzeichnis nicht gefunden in /srv/www/web4/html/upload2/upload.php on line 110

Hab eig alles so gemacht, wie du mir oben schon geschrieben hast
 
Nicht so wirklich wie ich das meinte, werde mich wahrscheinlich ungenau ausgedrückt haben.

Hier mal eine bearbeitete Version.

Habe dir 4 Variablen da reingebaut und jeweils im kompletten Code geändert (Hoffe ich habe nichts übersehen).
$absolute_path_thumbs, $absolute_path_images, $relative_path_thumbs, und $relative_path_images
Hoffe das wird so verständlicher was ich meinte oder es klappt direkt.

PHP:
<?php
/**
** Variablen declaration:
*/
ini_set("max_execution_time", "300");  //maximale ausfuehrzeit des scriptes festlegen, nach 300 sek abbruch!
ini_set("upload_max_filesize", "1.55M"); //maximale upload groesse festlegen
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge'); //Sprach und Format einstellung
// Aenderungen !!
// Pfade für PHP Funktionen wie move_uploaded_file,imagejpeg, copy usw
$absolute_path_thumbs = "/srv/www/web4/html/upload2/files/thumbs/"; //Pfad auf Webserver fuer Thumbnails
$absolute_path_images = "/srv/www/web4/html/upload2/files/"; //Pfad auf Webserver fuer Original Bilder
// Pfade für den User später zum abrufen des Bildes, also bei http://domain.de/....
$relative_path_thumbs = "upload2/files/thumbs/";
$relative_path_images = "upload2/files";
// << Ende Aenderungen !!
$x_size      = "100";        //Bild maximal 100px breit
$y_size      = "100";        //Bild maximal 100px hoch
$quali       = "75";         //Jpeg Qualitaet bei 75%
$error       = "";
/**
** Die Funktion resize_img uebernimmt ein vorhandenes Bild "$img" aus dem Verzeichnis "$path_img"
** und verkleinert das Bild auf die breite "$x_size" und hoehe "$y_size" und reduziert die 
** qualität auf "$quali" das verkleinerte Bild wird nach anschliessend ins Verzeichnis "$path_thumbs"
** kopiert. Das orginal Bild bleibt vorhanden.
*/
function resize_img($img, $absolute_path_images, $absolute_path_thumbs, $x_size, $y_size, $quali )
{
    $file = $absolute_path_images.$img;
    $infos = getimagesize($file);
    if($infos[2] == 2) {
    // jpeg
    $src_img = imagecreatefromjpeg($file);
    } elseif($infos[2] == 3) {
      // png
    $src_img = imagecreatefrompng($file);
    } elseif($infos[2] == 1) {
      // gif
    $src_img = imagecreatefromgif($file);
    }
    if ($src_img != ''){
        $imageinfo = getimagesize($file);
        if($imageinfo[0]==$imageinfo[1]){
            $new_w = $x_size;
            $new_h = $y_size;
        }elseif($imageinfo[0]>$imageinfo[1]){
            $new_w = $x_size;
            $ratio = $imageinfo[0]/$x_size;
            $new_h = $imageinfo[1]/$ratio;
        }elseif($imageinfo[0]<$imageinfo[1]){
            $new_h = $y_size;
            $ratio = $imageinfo[1]/$x_size;
            $new_w = $imageinfo[0]/$ratio;
        }
         $dst_img = imagecreatetruecolor($new_w,$new_h);
         imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $new_w,$new_h, imagesx($src_img), imagesy($src_img));
         imagejpeg( $dst_img, $absolute_path_thumbs.$img,$quali);
    }
}
?>
<?php
if(isset($upload)){
    #print_r($_FILES['file']);
    /**
    ** Es wird ueberprueft, ob eine Datei hochgeladen wurde, kein fehler beim upload passiert
    ** und die Datei kleiner als 1,5MB ist
    */
    if (isset($_FILES['file'])AND ! $_FILES['file']['error'] AND $_FILES['file']['size'] < 1550000) 
    {
        /**
        ** Ueberpruefung ob das Bild konform ist in den ausmassen und im Bildtyp
        ** Wenn ja wird es durch die php funktion "move_uploaded_file" in das "$path_images" Bilder Verzeichnis kopiert
        */
        $is_image = getimagesize($_FILES['file']['tmp_name']);
        #print_r($is_image);
        if($is_image[2] != "" AND $is_image[0] <= 1024 AND $is_image[1] <= 1024){;
            $uploadedfile = $_FILES['file']['name'];
            $uploadedfile = preg_replace("[^a-zA-Z0-9]","",$uploadedfile);
            #$uploadedfile = preg_replace ('|\W|', '', $uploadedfile);
            $uploadedfile = eregi_replace ("[áéíóúâêôûàèìòùäöü|\/890@€/ ]","", $uploadedfile);
            /**
            ** Ist das Bild bereits vorhanden, bzw der Dateiname bricht das Script ab.
            */
            if(is_file($absolute_path_images.$uploadedfile))
            { 
                $error .= "<br />Sorry, der Dateiname existiert bereits!"; 
            }else{
                move_uploaded_file($_FILES['file']['tmp_name'], $absolute_path_images.$uploadedfile);	// hier eine änderung
            }
        }else{
            /**
            ** error 1:
            ** Das Bild ist nicht vom Typ JPG, GIF oder PNG
            ** oder es ist groesser als 1024 x 1024 pixel
            */
            $error .= "<br />Sorry, Es sind nur Bilder vom Typ JPG, GIF und PNG erlaubt";
            $error .= "<br />Die Datei '<strong>".$_FILES['file']['name']."</strong>' ist kein erlaubtes Bild";
            $error .= "<br />TIP: Das Bild hat ".$is_image[0]."x".$is_image[1]." px, erlaubt sind nur max. 1024x1024 px! <br />";
        }
    }else{
        /**
        ** error 2:
        ** Das Bild ist nicht vom Typ JPG, GIF oder PNG oder gar keine Bild datei
        ** die groeße der Datei ist kleiner 0 Bytes oder ueber 1.5 MB
        */
        $error .= "<br />Sorry, Es sind nur Bilder vom Typ JPG, GIF und PNG erlaubt";
        $error .= "<br />Die Datei '<strong>".$_FILES['file']['name']."</strong>' ist kein erlaubtes Bild.";
        $error .= "<br />TIP: Das Datei hat ".number_format($_FILES['file']['size'],"","",".")." Bytes, erlaubt sind nur 1.500.000 Bytes<br />";
    }
    if ($error == ""){
        /**
        ** Mit der Upload-Datei scheint alles in Ordnung zu sein, sie wurde hochgeladen, wird jetzt verkleinert
        ** mit der funktion "resize_img" und wird dann angezeigt.
        ** Die Ausgaben werden generiert.
        */
        resize_img($uploadedfile, $absolute_path_images, $absolute_path_thumbs, $x_size, $y_size, $quali );
        $px = getImagesize($absolute_path_images.$uploadedfile);
        $forum_link1 = '<input style="width:450px;" type="text" value="[ url=http://'.$GLOBALS[SERVER_NAME].'/'.$relative_path_images.$uploadedfile.'[ IMG]http://'.$GLOBALS[SERVER_NAME].'/'.$relative_path_thumbs.$uploadedfile.'[ /IMG][ /url]"> Link für Foren';
        $link = '<a href="http://'.$GLOBALS[SERVER_NAME].'/'.$relative_path_images.$uploadedfile.'" target="_blank"><IMG SRC="http://'.$GLOBALS[SERVER_NAME].'/'.$relative_path_thumbs.$uploadedfile.'"></a>';
        $forum_link2 = '<input style="width:450px;" type="text" value="'.htmlentities($link).'"> Link für Websites';
        $forum_link3 = '<input style="width:450px;" type="text" value="http://'.$GLOBALS[SERVER_NAME].'/'.$relative_path_images.$uploadedfile.'"> <a href="http://'.$GLOBALS[SERVER_NAME].'/'.$relative_path_images.$uploadedfile.'" target="_blank">Show</a> Bild an Freunde ';
        $forum_link4 = '<input style="width:450px;" type="text" value="http://'.$GLOBALS[SERVER_NAME].'/'.$relative_path_images.$uploadedfile.'"> Direkter Link ';
        $image_thumb = "<IMG SRC='http://".$GLOBALS[SERVER_NAME]."/".$relative_path_thumbs.$uploadedfile."' >";
        ?>
        <table class="text" align="center">
        <tr><td colspan="2"><?php echo $error ?></td></tr>
        <tr><td colspan="2"><?php echo $forum_link1 ?></td></tr>
        <tr><td colspan="2"><?php echo $forum_link2 ?></td></tr>
        <tr><td colspan="2"><?php echo $forum_link3 ?></td></tr>
        <tr><td colspan="2"><?php echo $forum_link4 ?></td></tr>
        <tr><td width="25%"><?php echo $image_thumb ?></td><td width="75%"><? echo $image_info1 ?></td></tr>
        </table>
        <?php    
    }else{
        /**
        ** Es wurde ein error beim Upload erzeugt
        */
        ?>
        <table class="text" align="center">
        <tr><td><?php echo $error ?></td></tr>
        </table>
        <?php
    }    
}else{    
/**
** Standart aufruf des Scriptes, zum Datei auswaehlen und hochladen
*/
?> 
<br />
<br />

Hier kannst du Eigene Bilder hochladen; Die Bilder werden dann automatisch unter Pics hochgespielt;<br />
Es können nur jpeg/jpg/png/gif Dateien hochgeladen werden; <br />
(nach 300 Sekunden bricht der upload ab);<br />
Bitte warte solange bis der Browser fertig meldet, dies kann ja nach gr&ouml;&szlig;e des Bildes etwas dauern<br /><br />

<form method="post" enctype="multipart/form-data" action="<?php echo $PHP_SELF ?>"> 
    <input type="file" name="file"><br>
    <input type="submit" name="upload" value="Upload">
</form>



<?php
}
?>
 
Wow, Vielen Dank Funktoniert Super!

Da ich dieses Thread schon Eröffnet habe, Hätte ich da noch eine Frage an dich bzw an die Community, und zwar: Wie kann ich es machen, das sich der Name der Datei Automatisch zb in 357u2347247.jpg nennt? (nur ein bsp)

mfg
 
Ganz einfach, du erstellst eine neue variable ein:

<?php

$filen = uniqid(rand());


?>

Und diese Variable setzt du einfach bei move_uploaded_file ein, denn dann übernimmt er das auch ;)

MfG
KD3
 
Gut das es funktioniert.
Da du sowas wie einen Bilderhoster programmieren willst, würde ich dir auch raten zu verstehen, was da genau passiert. Also was sind absolute und relative Pfade.

Zum Dateinamen:
Die legst ja irgendwo den Dateinamen zum Speichern der Datei fest ($uploadedfile heisst die Variable bei dir). Diese ziehst du aus der Variable $_FILES.
Wenn du nun einen zufälligen Dateinamen haben willst, muss du an diesem Bereich ansetzen.
Vor ein paar Tagen(1-3) wurde schonmal nach einer solchen random funktion gefragt, müsstest du mal suchen. Dort kannst du einen Zufallsstring generieren.
Um dann auch noch die korrekte Dateiendung zu kriegen, musst du aber vorher das ".jpg" oder ".gif" vom Originaldateinamen abschneiden und einfach anhängen. Du rufst vorher getimagesize() auf, welches auch den Dateityp erkennt. Es bieten sich dir also zwei möglichkeiten für die Ermittlung der Dateiendung.

Der logische Ablauf wäre dann:
- Dateiendung erkennen (durch erkennen am Originaldateinamen aus $_FILES['file']['name']) oder bei getimagesize())
- zufälligen Stringkombination generieren
- Dateiname zusammenbauen (zufälliger String + Endung)
Ansonsten gleicher Ablauf deines Scriptes.

Beachte, das der originale Dateiname dann weg ist und das Bild nur noch durch die zufällige Stringkombination aufrufbar ist.

Hoffe das reicht dir als Einstieg.


Edit:
Url zum Zufallsgenerator
http://www.tutorials.de/forum/1425344-post4.html
 
Zuletzt bearbeitet:
habs jetzt so $uploadedfile = uniqid(rand());

das problem ist nun, das die endung beim hochladen nicht angezeigt wird

sie heißt nun so:

PHP:
http://cyber-gfx.de/upload2/files/17165465b3cd2a46
 
Zurück