tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
9
ZUGRIFFE
362
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von DaveThuet
    DaveThuet DaveThuet ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Ort
    Küblis GR (Schweiz)
    Beiträge
    162
    Hallo Zusammen,

    ich habe natürlich wiedermal ein Problem das ich nicht gelöst bekomme und komischerweise auch nicht mein Programmierer der Homepage...

    Es geht um folgendes:
    Wenn man ein Wallpaper wählt hier ein Beispiel und nun ein Download-Format wählt (im Fenster "Download-Auflösungen"), zum Beispiel 1280x960 (bis dahin geht es ohne Registrierung).
    Nun möchte ich das man dann mit einem Rechtsklick aufs neu geöffnete Bild der Originalname mit der gewählten Grösse abspeichert als jpg, also in etwa so für die oben gemachten Beispiele "Closed rose 1280x960.jpg".
    Ideal wäre auch wenn das Format mitübernommen werden könnte, also dann "Closed rose 1280x960.png".
    Im Moment wird alles als "download.php" abgespeichet im Firefox und im Internet Explorer als "untitled.bmp".

    Ich habe es bereits versucht indem ich den Bildname und das gewählte Bild-Format übergeben habe an die download.php aber alles ohne ersichtlichen Erfolg.
    Hätte jemanden eine Lösungsidee?

    Hier die zwei Seiten die den ganzen Prozess realisieren:
    Als erstes die download.php:
    PHP-Code:
    <?php
    //Connection statement
    require_once('XXX');
    //Aditional Functions
    require_once('XXX');
    session_start();
    header("location: download2.php?".$_SERVER['QUERY_STRING']);
    ?>
    Und als zweites und die wichtigste die download2.php:
    PHP-Code:
    <?php
    //Connection statement
    require_once('XXX');

    //Aditional Functions
    require_once('XXX');
    session_start();
    $filename "XXX"
    $groesse getimagesize($filename);

    cropImage($_GET['b'], $_GET['h'], $filename'jpg''');
    function 
    cropImage($nw$nh$source$stype$dest) {

        
    $size getimagesize($source);
        
    $w $size[0];
        
    $h $size[1];


    $groessenkorrektur = ($_GET['b']/$_GET['h'])/($w/$h);
    if(
    $groessenkorrektur 1) {
    $groessenkorrektur 1;
    }

        
    $h $size[1]/$groessenkorrektur;
    switch (
    $size[2]) {
    case 
    1$simg imagecreatefromgif($source); break;
    case 
    2$simg imagecreatefromjpeg($source); break;
    case 
    3$simg imagecreatefrompng($source); break;
    default: 
    trigger_error('This is not an allowed image type.'E_USER_WARNING); break;
    }


        
    $dimg imagecreatetruecolor($nw$nh);
        
    $wm $w/$nw;
        
    $hm $h/$nh;
        
    $h_height $nh/2;
        
    $w_height $nw/2;
        if(
    $w$h) {
            
    $adjusted_width $w $hm;
            
    $half_width $adjusted_width 2;
            
    $int_width $half_width $w_height;
            
    imagecopyresampled($dimg,$simg,-$int_width,0,0,0,$adjusted_width,$nh,$w,$h);
        } elseif((
    $w <$h) || ($w == $h)) {
            
    $adjusted_height $h $wm;
            
    $half_height $adjusted_height 1.2;
            
    $int_height $half_height $h_height;
            
    imagecopyresampled($dimg,$simg,0,-$int_height,0,0,$nw,$adjusted_height,$w,$h);
        } else {
            
    imagecopyresampled($dimg,$simg,0,0,0,0,$nw,$nh,$w,$h);
        }
        
    header('Content-type: image/jpeg');
        
    imagejpeg($dimg,"",100);
    }
    ?>
    Ich wäre echt sehr dankbar für Ideen oder Lösungsvorschläge...
    Geändert von DaveThuet (17.07.09 um 17:22 Uhr) Grund: Sicherheitsgründe
     

  2. #2
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    Zitat Zitat von DaveThuet Beitrag anzeigen
    Code :
    1
    
    header("location: download2.php?".$_SERVER['QUERY_STRING'][B][COLOR="Red"]."/".[/COLOR][/B]$_GET['bild']);
    so hängt man aber keine URL-Parameter an. Schau Dir testhalber mal mit echo an, was dabei herauskommt...
    Wozu überhaupt dieses ganze Umgeleite. Zumindest bei diesen beiden Dateien ist das doch völlig unnötig.

    Zitat Zitat von DaveThuet Beitrag anzeigen
    PHP-Code:
    //header("Content-Disposition: attachement; filename=\"wallpaper.jpg\""); 
    Wenn Du aus dem "attachement" ein "inline" machst, den "filename" entsprechend setzt, sollten die gängigen Browser das verarbeiten, wenn Du diesen Header sendest.

    Sowas sollte (D)ein Webprogrammierer aber zumindest herausbekommen können, wenn er's nicht weiß...

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  3. #3
    Avatar von DaveThuet
    DaveThuet DaveThuet ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Ort
    Küblis GR (Schweiz)
    Beiträge
    162
    Hallo zusammen,

    Ich habe die Seiten prgrammiert und danke euch für die Lösungsvorschläge.

    Das mit dem inline hatte ich natürlich auch schon probiert, aber leider ohne Erfolg.
    Beide Browser IE und FF zeigen weiterhin den Dateinamen download2.php an.

    Aus einem anderen Forum bin ich darauf gestossen, den Dateinamen in der URL mit:
    URL/Query_string/bilddateiname.jpg zu übergeben. Deshalb die etwas spezielle URL. Leider hat auch das nicht funktioniert.

    Beim Forschen nach dem "Content-Disposition: inline" bin ich immer wieder darauf gestossen, dass es damit Probleme gibt.

    Hat vielleicht jemand Erfahrung damit?
     

  4. #4
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    Zitat Zitat von DaveThuet Beitrag anzeigen
    Hat vielleicht jemand Erfahrung damit?
    nein, aber ich hab's einfach ausprobiert und in FF2 und IE7 funktioniert's tadellos.

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  5. #5
    Avatar von DaveThuet
    DaveThuet DaveThuet ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Ort
    Küblis GR (Schweiz)
    Beiträge
    162
    Wow das ging aber schnell. Besten Dank.

    Ich habe das auch probiert und jetzt so drin:

    PHP-Code:
    header('Content-type: image/jpeg');
    header("Content-Disposition: inline; filename=wallpaper.jpg");
    imagejpeg($dimg,"",100); 
    Aber leider ohne Erfolg. Bei mir zeigt es beim Download immer noch download.php an.
     

  6. #6
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    wird das Bild denn auch neu geladen und nicht aus dem Cache geholt? Bei mir funktioniert das nämlich wie gesagt tadellos. Häng probehalber mal einen Timestamp an die URL.

    LG

    Edit: Tut's doch:
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Speichern mit Name und Format und Endung-screen_wallpaper.jpg  
    Geändert von kuddeldaddeldu (16.07.09 um 00:26 Uhr)
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  7. #7
    Avatar von DaveThuet
    DaveThuet DaveThuet ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Ort
    Küblis GR (Schweiz)
    Beiträge
    162
    Danke. Ich habe nun auf verschiedenen Browsern getestet. Cache geleert und zum Teil auf Umgebungen wo die Seite noch nie offen war.

    Funktioniert auf folgenden Browsern:
    Safari und FireFox auf MAC.
    Opera und Chrome auf Windows.

    Auf dem IE und FireFox auf Windows funktioniert das "inline" nicht.
     

  8. #8
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    unter Windows (Vista) habe ich erfolgreich IE7 und FF2 getestet. Außerdem unter Linux FF2 und Opera 9.

    Zitat Zitat von DaveThuet
    Auf dem IE und FireFox auf Windows funktioniert das "inline" nicht.
    Und das äußert sich wie (das ist nämlich nur eine Interpretation deinerseits...)? Installier mal einen Headersniffer und schau, was da wirklich gesendet wird.

    Übrigens ist es gar nicht nett, gleich den kompletten Code wieder zu entfernen. Wenn da irgendwas Sicherheitsrelevantes drin war, hättest Du ja genau den Teil entfernen können. Das ist hier keine 1:1 Support-Hotline, von den Themen sollen alle lernen können!

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

  9. #9
    Avatar von DaveThuet
    DaveThuet DaveThuet ist offline Mitglied Gold
    Registriert seit
    Sep 2007
    Ort
    Küblis GR (Schweiz)
    Beiträge
    162
    Zitat Zitat von kuddeldaddeldu Beitrag anzeigen
    Übrigens ist es gar nicht nett, gleich den kompletten Code wieder zu entfernen. Wenn da irgendwas Sicherheitsrelevantes drin war, hättest Du ja genau den Teil entfernen können. Das ist hier keine 1:1 Support-Hotline, von den Themen sollen alle lernen können!
    Das Löschen habe ich der unwissende "Dave" getätigt, sorry, habe es nun wieder eingefügt und hoffe die wichtigen und sicherheitsrelevanten Worte mit XXX gedeckt zu haben.
     

  10. #10
    kuddeldaddeldu kuddeldaddeldu ist offline Mitglied Diamant
    Registriert seit
    Dec 2007
    Ort
    Bremen
    Beiträge
    3.418
    Hi,

    Du hättest auch ruhig ganze Codeteile rausnehmen können. Für das Problem ist doch z.B. nicht wichtig, was für Abfragen Du da noch machst, oder dass das Bild noch skaliert wird. Hauptsache man kann noch erkennen worum es ursprünglich ging...

    Und ist das Problem jetzt erledigt?

    LG
     
    Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.

Ähnliche Themen

  1. Einfache String in XML-Format speichern?
    Von Dragonball im Forum Java
    Antworten: 1
    Letzter Beitrag: 28.05.09, 21:01
  2. Einfache String in XML-Format speichern?
    Von Dragonball im Forum XML Technologien
    Antworten: 0
    Letzter Beitrag: 22.05.09, 13:05
  3. Speichern von STL-Datei im ASCII Format
    Von chris_head im Forum Cinema 4D
    Antworten: 1
    Letzter Beitrag: 10.11.08, 10:13
  4. JFileChooser: Speichern-Dialog: Datei-Endung automatisch hinzufügen
    Von stookie im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 08.02.05, 14:27
  5. BufferedImage im RAW-Format speichern.
    Von acibu im Forum Java
    Antworten: 3
    Letzter Beitrag: 14.10.04, 23:00