Heim  >  Artikel  >  Backend-Entwicklung  >  Beispielanalyse, wie yii2 den Webuploader zum Hochladen von Bildern verwendet

Beispielanalyse, wie yii2 den Webuploader zum Hochladen von Bildern verwendet

黄舟
黄舟Original
2017-09-09 09:10:451450Durchsuche

In diesem Artikel wird hauptsächlich das praktische Projekt zur Implementierung des Bild-Uploads in yii2 vorgestellt.

Das Hochladen von Bildern ist für die Anwendung fast ein Muss Ich habe die Dateieingabe von Kartik auch ausführlich beschrieben, aber viele Leute haben über verschiedene Probleme berichtet. Nachfolgend habe ich eine separate Komponente für die Verwendung des Webuploaders geschrieben. Diese Komponente kann eine Reihe von Problemen, die Yii2 beim Hochladen von Bildern verursacht, besser bewältigen. Derzeit werden gemischte Uploads mehrerer Bilder, mehrerer Felder und mehrerer Modalitäten unterstützt.

Lassen Sie uns vor der Einführung die Wirkung demonstrieren.

Installation

Es wird empfohlen, Composer für die Installation zu verwenden


$ php composer.phar require bailangzhan/yii2-webuploader dev-master

Verwenden Sie

params.php oder params-local.php, um Webuploader- und Domänenkonfigurationselemente hinzuzufügen


// 图片服务器的域名设置,拼接保存在数据库中的相对地址,可通过web进行展示
'domain' => 'http://blog.m/',
'webuploader' => [
  // 后端处理图片的地址,value 是相对的地址
  'uploadUrl' => 'blog/upload',
  // 多文件分隔符
  'delimiter' => ',',
  // 基本配置
  'baseConfig' => [
    'defaultImage' => 'http://img1.imgtn.bdimg.com/it/u=2056478505,162569476&fm=26&gp=0.jpg',
    'disableGlobalDnd' => true,
    'accept' => [
      'title' => 'Images',
      'extensions' => 'gif,jpg,jpeg,bmp,png',
      'mimeTypes' => 'image/*',
    ],
    'pick' => [
      'multiple' => false,
    ],
  ],
],

webuploader['baseConfig'] Siehe die offizielle Parameterbeschreibung des Webuploaders

Datei anzeigen

Einzelbild


<?php 
  echo $form->field($model, &#39;file&#39;)->widget(&#39;manks\FileInput&#39;, [
  ]); 
?>

Mehrere Bilder


<?php 
echo $form->field($model, &#39;file2&#39;)->widget(&#39;manks\FileInput&#39;, [
  &#39;clientOptions&#39; => [
    &#39;pick&#39; => [
      &#39;multiple&#39; => true,
    ],
    // &#39;server&#39; => Url::to(&#39;upload/u2&#39;),
    // &#39;accept&#39; => [
    //   &#39;extensions&#39; => &#39;png&#39;,
    // ],
  ],
]); ?>

Die Adresse des Controllers kann in params.php oder konfiguriert werden params-local.php Yii::$app->params['webuploader']['uploadUrl'], Sie können das Serverelement auch in clientOptions konfigurieren. Das Datenformat, das der Controller zurückgeben muss, ist wie folgt


// 错误时
{"code": 1, "msg": "error"}
// 正确时, 其中 attachment 指的是保存在数据库中的路径,url 是该图片在web可访问的地址
{"code": 0, "url": "http://domain/图片地址", "attachment": "图片地址"}

clientOptions siehe auch die offizielle Parameterbeschreibung des Webuploaders

Hinweis

Wenn es sich um einen modifizierten Multi-Image-Vorgang handelt, stellen Sie sicher, dass $model->file = 'src1,src2,src3,...'; model->file = ['src1', 'src2', ...];

Das obige ist der detaillierte Inhalt vonBeispielanalyse, wie yii2 den Webuploader zum Hochladen von Bildern verwendet. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn