2016-05-18 13 views
1

Ich muss ein Bild (mit Remote-Pfad) mit 'JPEG' Erweiterung als Benutzerprofil Bild in allen Browsern, so habe ich eine Codezeile wie unten in 'routers.php 'file:Verwenden von 'Png' Erweiterung in CakePHP 3

Router::extensions(['jpeg','gif']); 

der entsprechende Teil in der Ansicht sieht aus wie folgt:

echo $this->Html->image(['controller'=>'Images','action'=>'profilePicture'], ['alt' => $user['username'], 'data-lock-picture' => ['controller'=>'Images','action'=>'profilePicture'], '_ext' => 'jpeg']); 

ImagesController.php

public function profilePicture() { 
    $this->render('profilePicture', false); 
    $this->Images->generateImage(); 
    } 

ImagesTable.php

public function generateImage() { 
    $src_path = 'https://.../photo/username.jpg'; 
    $image_string = file_get_contents($src_path); 
    if ($image_string !== FALSE) { 
     $image_identifier = imagecreatefromstring($image_string); 
    imagejpeg($image_identifier);  
    } 
    } 

Nach dem Hinzufügen 'png' Erweiterung in routes.php Datei:

Router::extensions(['jpeg','gif','png']); 

ich eine Fehlermeldung in Mozilla bekommen:

"NetworkError: 500 Internal Server Error - http://.../cakephp/images/profilePicture". 

und es gibt kein 'JPEG' Bild gezeigt. Aber es funktioniert in Chrome gut.

Jede Hilfe wird geschätzt!

+0

Wie sollte jemand Ihr Problem mit den gegebenen Informationen reproduzieren können? Das Hinzufügen einer Erweiterung löst im Allgemeinen keine Probleme aus. Fügen Sie daher weitere Details hinzu, damit Benutzer, die Ihre Anwendung nicht kennen, das Problem reproduzieren können. Andernfalls ist es unwahrscheinlich, dass Sie viel Hilfe erhalten (siehe auch http: //stackoverflow.com/help/on-topic**). Beginnen Sie mit dem Einfügen des _full_ stacktrace (idealerweise kopiert aus den Protokollen, wo es in einer gut lesbaren Weise verfügbar ist)! das gehört zu dem Fehler, falls es tatsächlich in CakePHP ausgelöst wird. – ndm

+0

Zeigen/beschreiben Sie den richtigen Kontext, dh zeigen/markieren Sie den Code, der den Fehler auslöst (zB markieren Sie den Code mit Zeilennummern, die mit dem Stacktrace übereinstimmen), erarbeiten Sie Ihre App/Serverumgebung (OS, verwendete Tools) usw.)! Und last but not least, nenne bitte immer deine _exact_ CakePHP-Version und markiere deine Frage entsprechend - danke! Oft löst sich das Problem selbst beim Sammeln dieser Informationen. – ndm

+0

@ndm: Ich habe meine Frage bearbeitet, könnten Sie bitte überprüfen Sie es? – Hripsime

Antwort

0

Das Problem bestand darin, Erweiterungen in routers.php Datei hinzuzufügen. Sie sind bereits in der Datei "vendor/cake.php/cakephp/src/Validation/Validation.php" vorhanden.