Thumb wird nicht erstellt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Thumb wird nicht erstellt

    Hallo Community ,

    Das Bild wird geuploadet aber kein Thumb erstellt .
    Ich habe ebend ImageMagic auf meinem Root Server installiert und weiss nicht,
    ob es nun an dem Script liegt oder an einer falschen installation. Ich danke für Hilfe.

    PHP-Code:
    <?
    // Start config
    $db_host = localhost; # Database Host
    $db_user = ***;  # Database User
    $db_pass = ***;  # Database Pass
    $db = test;  # Database Name
    $purge = 0; # delete from DB after X days NOT ACTIVE YET
    $purge_days = 14; # delete after 14 days NOT ACTIVE YET
    $script_path = "/srv/www/web1/html/upload"; # path to the upload script
    $upload_path = "/data"; # name of the data path
    $size = 2000000; # max filesize
    $admin_email = 1; # send mail to admin after upload
    $admin_adress = addslashes("your@email.adress"); # admin email adress
    $url = "www.max-3d.de/upload"; # where am i?
    $thumb = 1; # create thumbnail?

    $convert = "/usr/local/bin/convert"; # path to convert from imagemagick


    // End config, dont edit the variables
    $date = date("d.m.Y");
    $tag = date("d");
    $monat = date("m");
    $jahr = date("y");
    $unixtime = mktime($sekunde, $minute, $stunde, $tag, $monat, $jahr);
    $filename1_name1 = md5($unixtime);
    $ip = getenv("REMOTE_ADDR");
    ?>
    Der Upload


    PHP-Code:
    <?
    include("config.inc.php");
    echo "<html>";
    echo "<head>";
    echo "<link rel=\"stylesheet\" type=\"text/css\" 
    media=\"screen\" href=\"style.css\" />";

    if ($filename1=="") {

    echo "No File selected";
    }

    if ($_FILES['filename1']['size'] > $size){

    echo "File is too large. Max Filesize $size bytes. Your size was ";
    print_r($_FILES['filename1']['size']);

    echo "<br /><a href=\"javascript:history.back()\">zur&uuml;ck</a>";

    } else {

    if(eregi("image",$_FILES['filename1']['type'])) {

    $type= explode("/", $_FILES['filename1']['type']);

    copy($filename1,$script_path."/".$upload_path."/".$filename1_name1.".".$type[1]);
    $filename = $filename1_name1.".".$type[1];

    mysql_connect($db_host,$db_user,$db_pass);
    mysql_select_db($db);

    $result = mysql_query("INSERT INTO upload 
    (name,fileid,type,date,unixtime,ip) 
    VALUES 
    ('$filename1_name1".".$type[1]',
    '$filename1_name1',
    '$type[1]','$date',
    '$unixtime','$ip')");


    echo "Direct Link <form>
    <input type=text name=TextFenster size=70 
    value=http://$url/?id=$filename1_name1>";

    echo "<input type=button value=\"Select\" 
    onclick=\"javascript:this.form.TextFenster.focus();
    this.form.TextFenster.select();\"></form>";

    echo "Direct Image Link<form><input type=text name=TextFenster 
    size=70 value=http://$url/data/$filename>";

    echo "<input type=button value=\"Select\" 
    onclick=\"javascript:this.form.TextFenster.focus();
    this.form.TextFenster.select();
    \"></form>";
    if ($_POST['thumb']==on) {

    passthru("$convert -thumbnail 320 $script_path/$upload_path/$filename 
    $script_path/$upload_path/thumb_$filename");

    echo "BBCode <form><input type=text name=TextFenster size=70 value=\"
    [url=$url/?id=$filename1_name1][img]http://$url/$upload_path/thumb_$filename [/img][/url]\">";

    echo "<input type=button value=\"Select\" 
    onclick=\"javascript:this.form.TextFenster.focus();

    this.form.TextFenster.select();\"></form><br />";
    echo "<img src=\"http://$url/$upload_path/thumb_$filename\">";
    }
    } else {
    echo "Only images are accepted";
    }
    }
    if ($admin_email==1) {
    mail($admin_adress,"New Upload","A new upload at 
    [url]http:/[/url]$url/?id=$filename1_name1");
    }
    echo "</body>";
    echo "</html>";
    ?>
    Zuletzt geändert von escape; 27.05.2006, 15:01.

  • #2
    mach erstmal die umbrüche in den code, sonst gibts ärger
    (keine horizontalen scroller)

    Kommentar


    • #3
      So nun

      Kommentar


      • #4
        Ganz tolle Fehlerbeschreibung!

        Naja, mal schauen, was meine Glaskugel so sagt...
        1. $_FILES['filename1']['error'] <<-- wo wertest du das aus?
        2. Steht error_reporting(E_ALL) am Anfang?
        3. copy() ist veraltet man sollte move_uploaded_file() verwenden
        4. in die register_globals Falle getappt?
        Wir werden alle sterben

        Kommentar


        • #5
          PHP-Code:
          passthru("$convert -thumbnail 320 $script_path/$upload_path/$filename 
          $script_path/$upload_path/thumb_$filename"); 
          Damit willst du ein Thumbnail erzeugen? Wo lernt man denn sowas?

          Wieso passthru()?

          Kommentar


          • #6
            passthru(), exec(), system(),... mit dem Befehlen kann man per PHP Anwendungen unter Linux starten/ausführen lassen. Ich habe mir ImageMagick installiert auf dem Server dazu einige Plugins. Imagemagick - damit kann man ohne grosse php Befehle Bilder convertieren oder resizen ,rotieren,... ich bin zufrieden

            Das Script läuft sauber! "im bg sind fehler @code" aber es lässt sich ausführen.

            Das problem warum es nicht lief?
            y.http.conf enthielt einen entscheidenen Befehl nicht

            <Directory "...">
            AllowOverride All
            Options +FollowSymLinks
            PHP_ADMIN_FLAG safe_mode off
            PHP_ADMIN_VALUE open_basedir /
            PHP_ADMIN_VALUE safe_mode_exec_dir /
            </Directory>

            Server restartet Bild upgeloadet und es geht

            Ich möchte es nicht hoch loben weil der code wirklich schlecht ist ,... aber es geht das zählt

            Wer es gern testen möchte TESTE HIER UND JETZT

            Ich teste gerade die ganzen commands und bin überwältigt

            Der code hat es mir angetan

            PHP-Code:
            passthru("$convert -size 400x180 $script_path/$upload_path/$filename  -thumbnail '200x90>' \
                        -bordercolor white  -border 6 \
                        -bordercolor grey60 -border 1 \
                        -background  none   -rotate -9 \
                        -background  black  \( +clone -shadow 60x4+4+4 \) +swap \
                        -background  LightSteelBlue  -flatten    
            $script_path/$upload_path/thumb_$filename"); 

            Infos zu Imagemagick
            Zuletzt geändert von escape; 28.05.2006, 01:23.

            Kommentar


            • #7
              Hrm, vielen Dank, aber ich kenne ImageMagick und diese PHP-Funktionen bereits.
              ... sowie auch das Manual, in dem zu passthru() steht "Führt ein externes Programm aus und zeigt dessen Ausgabe an."
              Also nochmal: Wieso passthru()? (lies: "Wieso sendest du die Ausgabe von convert an den Browser?")

              Btw: Du hast maxlength="<? 2000000 ?>" in deiner Testseite. Wieviel ist das in Kilobyte?

              Kommentar


              • #8
                Ich meine nicht ganz 2 Mb sind so um die 1,75 Mb

                Also nochmal: Wieso passthru()? (lies: "Wieso sendest du die Ausgabe von convert an den Browser?")

                Die Funktion B]passthru()[/B] ähnelt der Funktion exec(), da sie ebenfalls einen Befehl ausführt. Ist der Parameter return_var angegeben, wird der Rückgabestatus des UNIX-Befehls hier abgelegt. Sie sollten diese Funktion jedoch an Stelle von exec() bzw. system() benutzen, wenn es sich bei der Ausgabe des Unix-Befehls um binäre Daten handelt, welche direkt zum Browser zurückgeschickt werden müssen. Ein praktisches Beispiel hierfür ist die Ausführung des pbmplus Utility, welches direkt einen Bildstream ausgibt. Wenn Sie den Content-Type auf image/gif setzen, und dann das pbmplus Programm aufrufen um ein GIF zu erzeugen, können Sie auf diesem Weg mittels PHP direkt ein Bild erzeugen und es ausgeben.passthru()
                Zuletzt geändert von escape; 28.05.2006, 01:47.

                Kommentar


                • #9
                  Original geschrieben von escape
                  Ich meine nicht ganz 2 Mb sind so um die 1,75 Mb
                  Oh man, du bist echt 'ne Marke!
                  In deinem Quelltext stehts wirklich so, wie ich es da oben schrieb. Das sind nicht 2MB sondern "kleineralsFragezeichen 2MB Fragezeichengrößerals"; zumindest verstehts mein Browser so.

                  Ich sende sie an den Linux Server da könnte auch EXEC stehen
                  Das Bild speichert convert auf dem Server, aber die Ausgabe gibt es an PHP zurück und wegen passthru gehts direkt zum Browser.
                  Dir ist aber scheinbar nicht klar, was ich mit Ausgabe meine - wohl weil convert keine erzeugt, wenn alles glatt geht.

                  Kommentar


                  • #10
                    Was soll ich sagen, da kann ich ja nur froh sein das es nicht richtig funzt *g*

                    Schaumal du solltest langsam gemerkt haben das ich null plan von php habe und ich breche mir richtig einen ab@code. ich habe mich Heute das erstemal mit bildupload auseinander gesetzt bis vor ein paar stunden wusste ich nichtmal wie ich den scheiss Server einstelle um exec's zu erlauben,... Ich brauche noch ne Zeit bis ich die sachen alle so versteh@php wie Ihr

                    Mein Fachgebiet liegt mehr im 3D Design
                    Das hier zb das ist meine Stärke
                    Schau dir das Thumb an ist das nicht genial ? *g*



                    MfG Thomas alias Tom
                    Zuletzt geändert von escape; 28.05.2006, 01:56.

                    Kommentar


                    • #11


                      Macht halt jeder das, wovon er leben kann.

                      Kommentar

                      Lädt...
                      X