Schritt 1: Erstellen Sie die grundlegende Arbeit zum Hochladen. Weitere Informationen finden Sie unter: http://www.yiichina.com/tutorial/328
Schritt 2: Erstellen Sie auf der Website eine Produkttabelle mit den Feldern ID, Name und Bild.
Schritt 3: GII generiert PRODUKT-Modelle, -Klassen und -Ansichten.
Schritt 4: Platzieren Sie
main.css 放在frontend\web\css .onedialog{position:absolute; left: 300px; top: 500px; z-index: 10; width: 700px; height: 400px;border -radius:5px; box-shadow:5px 2px 6px #000; border: 2px solid #666} .oneiframe{ width: 100%; height: 100% }
main.js auf frontendwebassets
$(function(){ $('#product-picurl').click(function(){ $('#oneupload').remove(); $('<div>').appendTo($('body')).attr({"class":"onedialog",'id':"oneupload"}); $('<iframe>').appendTo($('#oneupload')).attr({"src":"?r=upload","class":"oneiframe"}) }); var v=$('#product-picurl').val(); if(v){ $('<img>').attr({"src":v,"style":"height:50px"}).insertAfter($('#product-picurl')); } });
und registrieren Sie diese beiden Dateien dann in frontendassetsAppAsset.php
class AppAsset extends AssetBundle { public $basePath = '@webroot'; public $baseUrl = '@web'; public $css = [ 'css/site.css', 'css/main.css', ]; public $js = [ 'assets/main.js' ]; public $depends = [ 'yii\web\YiiAsset', 'yii\bootstrap\BootstrapAsset', ]; }
UploadController .php
<?PHP namespace frontend\controllers; use Yii; use yii\web\Controller; use app\models\UploadForm; use yii\web\UploadedFile; class UploadController extends Controller { public function actionIndex() { $model = new UploadForm(); if (Yii::$app->request->isPost) { $model->file = UploadedFile::getInstance($model, 'file'); if ($model->file && $model->validate()) { //$model->file->saveAs('uploads/' . $model->file->baseName . '.' .$model-> file->extension); $fileName='uploads/' . date("YmdHis") . '.' . $model->file->extension; $model->file->saveAs($fileName); } echo "<script src='assets/upload.js'></script>;"; echo "<script>"; echo "var oneinput=parent.document.getElementById('product-picurl');"; echo "parent.document.getElementById('product-picurl').value='".$fileName."';"; echo "var oneupload = parent.document.getElementById('oneupload');"; echo "var img = document.createElement('img');"; echo "img.setAttribute('style', 'height:50px');"; echo "img.src ='".$fileName."';"; echo "insertAfter(img,oneinput);"; echo "oneupload.parentNode.removeChild(oneupload)"; echo "</script>"; } return $this->render('upload', ['model' => $model]); } } ?>
UploadForm.php
<?PHP namespace app\models; use yii\base\Model; use yii\web\UploadedFile; /** * UploadForm is the model behind the upload form. */ class UploadForm extends Model { /** * @var UploadedFile file attribute */ public $file; /** * @return array the validation rules. */ public function rules() { return [ [['file'], 'file'], ]; } } ?>
upload.php
<?php use yii\widgets\ActiveForm; ?> <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]) ?> <?= $form->field($model, 'file')->fileInput() ?> <button>Submit</button> <?php ActiveForm::end() ?>
PHP Chinesische Website, Es gibt Viele kostenlose Yii-Einführungs-Tutorials, zum Lernen ist jeder herzlich willkommen!
Das obige ist der detaillierte Inhalt vonSo laden Sie Bilder in yii2 hoch. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!