zeige hochgeladene Bild yii
Ich bin neu in php und yii. Ich hab ein Datei-Feld in mein Formular zum hochladen von Bildern. Ich verwende den folgenden code, um das Bild hochzuladen mit dem Datei-Feld.
Code im Blick:
<?php echo $form->fileField($model,'logo', array('class'=>'input-file')); ?>
<img src="<?php
echo Yii::app()->request->baseUrl.'/protected/uploads/sitelogo/'.$savedvalues['varLogo'];
?>" width="50" height="50" />
<?php echo $form->hiddenField($model,'hiddenfile',
array('value'=>$savedvalues['varLogo'])); ?>
code in controller:
$randnum = rand(0,100);
$home->varLogo = $randnum.$model->logo;
$file= Yii::app()->getBasePath().'/uploads/sitelogo/'.$randnum.$model->logo;
$model->logo->saveAs($file);
Bilder hochladen jetzt gut. Ich habe gespeichert, das hochgeladene Bilder in protected\uploads\
Ordner. Ich versuche zu zeigen, das hochgeladene Bild in Bild Bearbeiten, Abschnitt. Das Bild wird aber nicht angezeigt. Es Zeigt failed to load the given url
im firebug.
Wie kann ich dieses Problem zu beheben?
- ist das also geholfen? stellen Sie Ihre Fragen, wenn etwas unklar ist, für Sie
Du musst angemeldet sein, um einen Kommentar abzugeben.
protected
Ordner geschützt ist, für einige Grund - niemand zugreifen kann, eswenn Sie möchten, um Zugriff auf Ihre Bilder bewegen Sie
public
Ordner (oderpublic/uploaded
)hier ist
.htaccess
Inhalte fürprotected
EDIT:
natürlich können Sie Ihre Dateien in geschützte Ordner(oder machen
uploaded
Ordner nicht zugänglich zu) wenn Sie eine ACL für Ihre Benutzer, und überprüfen Sie dann den Zugriff, Lesen und Ausgabe-Datei, die vom Skript(Klasse)im Blick:
in Ihrem controller oder Klasse:
Yii::getPathOfAlias('webroot')
stattYii::app()->getBasePath()
.Caveat: ich bin ein total yii-noob, also nutze die w/a grain of salt 🙂
Ich nahm einen ähnlichen Ansatz, aber die Benutzer-spezifischen Ordner & Hinzugefügt, MIME-Typ überprüfen.
Lade ich die Dateien in einer ähnlichen Weise, dann mit diesem in der Ansicht:
Und von meinem controller habe ich:
filename name der Datei, die Sie gespeichert haben, in den upload-Ordner in das root-Verzeichnis.
Hoffe, es funktioniert....