php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 25.09.2010, 19:41  
Neuer Benutzer
 
Registriert seit: 25.09.2010
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
Fuchur84 befindet sich auf einem aufstrebenden Ast
Standard Canvas als Bild speichern - AJAX an PHP, Bild aber korrupt...

Hallo!
Ich bin neu im Forum und wusste nicht genau, ob dieses Problem hier ehr ins PHP oder in ein JavaScript-Forum muss, aber da ich das Problem ehr bei meinem PHP-Code vermute, poste ich es mal hier rein.
Seit mir nicht böse, wenn ich falsch liegen sollte und es doch in ein anderes Forum muss.

I habe ein kleines Script geschrieben, dass mir ein HTML5-Canvas-Element als PNG-Bild abspeichern soll.

Das ist mein JavaScript-Code:
Code:
function save_to_img(){
        var req = null;
        dataURL = document.getElementById('drawing_area_1').toDataURL("image/png");
        var url = "../html/save_to_img.php";
    
        var req = null;
        try{
            req = new XMLHttpRequest();
        } catch (ms){
            try{
                req = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (nonms){
                try{
                    req = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (failed){
                    req = null;
                }
            }
        }

        req.open("POST", url, true);   
        req.onreadystatechange = function(){
            switch(req.readyState) {
                case 4:
                    if(req.status == 200) {
                        window.open(url, "Save_To_Image");
                        return true;
                    } else {
                        alert(req.status + ': Serverproblem, maybe not available?');
                    }
                break;
                default:
                    return false;
                break; 
            }
        };
        
        
        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
        req.send("img_data=" + dataURL);
    }
Und hier der PHP-Code von der Datei: save_to_img.php
PHP-Code:
<?php
    session_start
();
    
$path '../img/save_to_img/';
    
$format 'png';
    
    if(isset(
$_POST['img_data'])){
        
$data $_POST['img_data'];
        
$data str_replace('data:image/png;base64,'''$data);
        
// $data = base64_decode($data);

        
$date date('Y_m_d_-_H_i_s');
        
$i 0;
        
$file_name "scriman_img_".$date.".".$format;
        
        while(
is_file($path.$file_name)){
            
$file_name "scriman_img_".$date."_".$i.".".$format;
            
$i++;
        }
        
        
file_put_contents($path.$file_name$data);
        
$_SESSION['save_to_file'] = $file_name;        
    } else {
           
header('Content-type: image/png');
        
header('Content-Disposition: attachment; filename="'.$_SESSION['save_to_file'].'"');

        
$data file_get_contents($path.$_SESSION['save_to_file']);
        
unlink($path.$_SESSION['save_to_file']);
        
        echo 
$data;
    }
?>
Ich bekomme damit den Downloaddialog und kann auch eine Datei runterladen, die ist dann aber nicht anschaubar. Weiß jemand warum? Ich benutze FireFox 3.6.10.

Ich glaube, es hat etwas mit dem base64-encoding zu tun. Send eich die Bilddaten nämlich direkt per JavaScript an den Browser (siehe Script-Erweiterung)
Code:
window.open(dataURL, "NewWindow", "width=500,height=500");
..wird das BIld angezeigt und ich kann es über "Speichern unter..." auch abspeichern und ansehen. Kann jemand helfen?

Vielen Dank an alle die versuchen mir zu helfen schonmal im Voraus!
Viele Grüße
*Fuchur*

Geändert von Fuchur84 (26.09.2010 um 14:38 Uhr).
Fuchur84 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.09.2010, 14:38  
Neuer Benutzer
 
Registriert seit: 25.09.2010
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
Fuchur84 befindet sich auf einem aufstrebenden Ast
Standard

Zur Info:
Ich hab die Zeile...
PHP-Code:
$data base64_decode($data); 
...im PHP-Code auskommentiert, weil ich mir gedacht habe, das ich das Bild ja auch direkt an den Browser senden und dann ohne Rückkonvertierung anzeigen lassen kann (Zusatzjavascript s.o.), mit der Dekodierung funzt es aber auch nicht. Das Bild, dass ich erhalte sieht zwar dann einem funktionierenden PNG in einem Text-Editor deutlich ähnlicher, ist aber ebenfalls nicht anzeigbar.
Fuchur84 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Bild Komprimiert speichern Culutio PHP-Fortgeschrittene 15 18.02.2007 18:54
Wie Bild speichern? TAD PHP Tipps 2006 2 04.09.2006 21:44
bild speichern PHP Tipps 2006 1 10.06.2006 13:42
Verkleinertes Bild (Thumb) in Datenbank speichern Da-JS PHP Tipps 2006 17 21.05.2006 17:35
Bild speichern lukatsch PHP Tipps 2006 9 10.05.2006 20:52
Bild in maxDB speichern, aber wie ? PHP-Fortgeschrittene 1 08.11.2005 09:36
kommentar in bild speichern und mit php auslesen Marc PHP Tipps 2005-2 6 01.08.2005 15:16
Bild von externer URL auf lokalem Server speichern PHP Tipps 2005-2 2 18.07.2005 13:23
[Erledigt] Bild aus Datenbank holen und als File speichern PHP Tipps 2005-2 2 05.07.2005 13:35
Bild (.jpg) mit Link auf Festplatte speichern PsychoEagle PHP Tipps 2005-2 11 16.06.2005 14:54
Bild nicht speichern faux PHP-Fortgeschrittene 10 22.05.2005 11:10
formular speichern und bild uploaden PHP Tipps 2004 10 03.11.2004 21:55
Bild speichern das mit der GDLib erstellt wurde. Stefano PHP Tipps 2004 2 22.09.2004 11:53
[Erledigt] Bild in MySQL DB speichern Datenbanken 2 19.09.2004 23:16
Bild in Mysql-Datenbank speichern Anuschka Datenbanken 2 12.09.2004 03:03

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
canvas als bild speichern, html5 canvas speichern, canvas bild speichern, html5 canvas bild speichern, http://www.php.de/php-fortgeschrittene/72208-canvas-als-bild-speichern-ajax-php-bild-aber-korrupt.html, canvas speichern, php canvas, canvas als bild uploaden, canvas php speichern, javascript canvas speichern, javascript canvas bild speichern, html canvas speichern, canvas html5 speichern, html5 canvas als bild speichern, canvas abspeichern, html canvas als bild speichern, js image from canvas, canvas image speichern, canvas als png speichern, html canvas bild speichern

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:34 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum