2016-05-16 11 views
-1

Ich versuche ein dynamisches Bild mit dem Google QR Code Generator über PHP zu erstellen und dieses Bild dann in einem temporären Verzeichnis auf dem Server zu speichern. Ich denke, ich bin nah dran, aber ich schreibe nicht so oft in PHP, deshalb brauche ich zusätzliche Anleitungen.PHP - Dynamisch erstelltes Bild auf Server speichern

Hier ist der Code, den ich habe:

header("content-type: image/png"); 
    $url = "https://chart.googleapis.com/chart?chs=177x177&cht=qr&chl=MyHiddenCode&choe=UTF-8"; 
    $qr_image = imagecreatefrompng(file_get_contents($url)); 
    $cwd = getcwd(); 
    $cwd = $cwd . "/temp"; 
    $save = "$cwd"."/chart123.png"; 
    imagepng($qr_image); 
    chmod($save,0755); 
    imagepng($qr_image,$save,0,NULL); 

Vielen Dank für jede und alle Erkenntnis.

+0

Welche Fehler bekommst du? –

+0

https://github.com/Pamblam/EasyImage -> 'EasyImage :: Erstellen ($ url) -> speichern ($ speichern);' Ihr Code sieht gut aus, wahrscheinlich müssen Sie die Berechtigungen in dem Verzeichnis, das Sie sind, anpassen Speichern unter ' –

+0

Existiert die Datei, wenn Sie 'chmod()' darauf ausführen? – WillardSolutions

Antwort

1

Sofern Sie nicht gerade Änderungen am Bild vornehmen (Größenänderung, Zeichnung usw.), müssen Sie GD nicht verwenden, um ein neues Bild zu erstellen. Sie können einfach file_get_contents verwenden, um das Bild zu erhalten, und file_put_contents, um es irgendwo zu speichern. Und um das Bild anzuzeigen, wiederholen Sie einfach das Echo von file_get_contents, nachdem Sie die Überschrift gesendet haben.

Beispiel:

<?php 
//debug, leave this in while testing 
error_reporting(E_ALL); 
ini_set('display_errors', 1); 

$url = "url for google here"; 
$imageName = "chart123.png"; 
$savePath = getcwd() . "/temp/" . $imageName; 

//try to get the image 
$image = file_get_contents($url); 

//try to save the image 
file_put_contents($savePath, $image); 

//output the image 

//if the headers haven't been sent yet, meaning no output like errors 
if(!headers_sent()){ 
    //send the png header 
    header("Content-Type: image/png", true, 200); 

    //output the image 
    echo $image; 
} 
+0

Vielen Dank !!!!!! – azsl1326

1

Ich denke, Sie zu viel Code haben, verwenden Sie so etwas wie:

<?php 
header("content-type: image/png"); 
$qr_image = imagecreatefrompng("https://chart.googleapis.com/chart?chs=177x177&cht=qr&chl=MyHiddenCode&choe=UTF-8"); //no need for file_get_contents 
$save = getcwd()."/temp/chart123.png"; 
imagepng($qr_image,$save); //save the file to $save path 
imagepng($qr_image); //display the image 

Beachten Sie, dass Sie nicht brauchen, tho die seit der GD-Bibliothek verwenden Bild wird bereits von googleapis generiert, das reicht:

header("content-type: image/png"); 
$img = file_get_contents("https://chart.googleapis.com/chart?chs=177x177&cht=qr&chl=MyHiddenCode&choe=UTF-8"); 
file_put_contents(getcwd()."/temp/chart123.png", $img); 
echo $img; 
Verwandte Themen