2016-04-08 10 views
0

Im Versuch angezeigt werden Bilder von Back-End meiner appYii2: Fehler nicht lokale Ressource

<?php foreach ($img as $key=>$row): ?> 
<div class="products_inside_wrapper intro_wrapper"> 
<div class="classes_inside_item bordered_wht_border"> 
<?php 
foreach (explode(';',rtrim($row['images'],';')) as $key_img => $value_img) 
{ 
?> 
<?php echo Html::img('@backend/web'.'/'.$value_img);?>     
<?php 
} 
?> 
</div> 
</div> 
<?php endforeach; ?> 

Versuchte mit obigen Code laden, darf alle Bilder anzuzeigen, aber Not allowed to load local resource immer Fehler, wenn ich öffnen Google Chrome Inspect Element

+0

Können Sie die Ausgabe html liefern? Ich glaube, das könnte uns mehr Einblick geben! – Midhun

Antwort

2

Als stig-js beantworten Sie nicht lokales Bild direkt gespeichert laden können, wenn Sie in der Lade Ressourcen von einem lokalen Pfad wirklich interessiert sind, Sie Bild als binäres öffnen können Datei mit fopen und echo den Inhalt davon mit einem richtigen Header zur Ausgabe.

public function getImage($imageName) 
{ 
    $imagePath = '@backend/web' . '/' . $imageName; 

    $fileInfo = finfo_open(FILEINFO_MIME_TYPE); 
    $contentType = finfo_file($fileInfo, $imagePath); 
    finfo_close($fileInfo); 

    $fp = fopen($imagePath, 'r'); 

    header("Content-Type: " . $contentType); 
    header("Content-Length: " . filesize($imagePath)); 

    ob_end_clean(); 
    fpassthru($fp); 
} 

P. S: Im Allgemeinen Art und Weise können Sie eine Methode, um Ihr Modell wie folgt hinzufügen Sie können auch Kombination dieser Antwort verwenden, um mit zeigt Bild als base64 auf HTML. Siehe How to display Base64 images in HTML?

2

ich denke, Sie eine lokale uRL verwenden, anstatt diese wie

mit ihm

<?php echo Html::img('@backend/web'.'/'.$value_img);?> 

Versuch der Verwendung

+0

mit @web wird es Dateien von Front-End-Web-Ordner Ich brauche Dateien aus Back-End-Web-Ordner zu Frontend meiner App – JKLM

+0

können Sie einen benutzerdefinierten Alias ​​in der gemeinsamen Konfiguration Yii :: setAlias ​​('@ res', 'http://example.com/backend/web/images/'); In der Ansicht verwenden Sie wie Midhun

1

Bilder müssen von einer URL, wie

yoursite.com/backend/imagedir/IMG' 

Wenn yoursite.com/backend Punkte zu Ihrem backend/web Ordner zugänglich sein.

Backend-Alias ​​zeigt auf Ihren lokalen Pfad , so dass Sie einen benutzerdefinierten Alias ​​benötigen, um Bildordner zu erreichen.

Yii2 Aliase: http://www.yiiframework.com/doc-2.0/guide-concept-aliases.html