Yii et CKEditor implémentent la fonction de téléchargement d'images

不言
Libérer: 2023-04-01 09:30:01
original
1471 Les gens l'ont consulté

Cet article présente principalement la fonction de téléchargement d'images de Yii combinée avec CKEditor. Yii est le célèbre framework de développement PHP, et CKEditor est le célèbre éditeur WYSIWYG. Les amis qui en ont besoin peuvent se référer à

Ceci dans un projet. J'ai travaillé dessus il y a quelques jours, j'avais besoin d'implémenter la fonction de téléchargement d'images dans l'éditeur WYSIWYG. J'ai choisi CKEditor parce que je préférais son interface. Bien qu'il existe CKFinder qui fonctionne bien avec CKEditor, sa fonction est trop compliquée. Après avoir brièvement consulté la documentation de CKEditor, j'ai trouvé que cette fonction pouvait être implémentée par moi-même sans recourir à CKFinder.

Bien que le code suivant soit basé sur Yii Framework, l'idée est exactement la même lorsque l'on utilise d'autres frameworks ou langages. Les chaussures pour enfants dans le besoin peuvent être référencées.

Tout d'abord, pour activer la fonction de téléchargement d'images dans CkEditor, vous devez configurer l'attribut filebrowserImageUploadUrl de l'éditeur :

CKEDITOR.replace( 'editor1',
    {
        filebrowserUploadUrl : '/uploader/upload.php',
        filebrowserImageUploadUrl : '/uploader/upload.php?type=Images'
    });
Copier après la connexion

Ensuite, implémentez la fonction de téléchargement d'images sur l'URL correspondante et renvoie une fonction spécifique au code HTML du format CKEditor, CKEditor peut prévisualiser et insérer des images normalement.
Ce qui suit n'intercepte qu'une partie du code du contrôleur. J'ai implémenté la partie Contrôleur comme ceci :

/**
 * 保存上传的图片
 *
 * @return string javascript code
 * @author lfyzjck
 **/
public function actionImg($type, $CKEditor, $CKEditorFuncNum, $langCode = 'zh-cn')
{
 if(empty($CKEditorFuncNum) || $type != 'Images'){
  $this->mkhtml($CKEditorFuncNum,'','错误的函数调用');
 }
 if(isset($_FILES['upload'])){
  //获取关于图片上传配置
  $options = Options::model()->findByPk(1);
  $form = new UploadForm('image',$options);
  $form->upload = CUploadedFile::getInstanceByName('upload');
  if($form->validate()){
  //文件名:时间+源文件名
   $target_filename = date('Ymd-hm',time()).$form->upload->getName();
   $path = Yii::app()->basePath.'/../uploads/'.$target_filename;   //图片保存路径
   $form->upload->saveAs($path);
   $this->mkhtml($CKEditorFuncNum,Yii::app()->baseUrl.'/uploads/'.$target_filename, "上传成功");
  }
  else{
   $this->mkhtml($CKEditorFuncNum,'',$form->getError('upload'));
  }
 }
}
/**
 * 返回CKEditor的提示信息
 *
 * @return void
 * @author lfyzjck
 **/
private function mkhtml($fn, $fileurl, $message) 
{
 $str = '';
 exit($str);
}
Copier après la connexion

La fonction mkhtml qui nécessite une explication particulière appellera la fonction CKEditor pour générer des informations d'invite. Une fois le téléchargement réussi, le lien de l'image sera renvoyé et CKEditor générera un aperçu de l'image basé sur l'URL.

Vient ensuite le code UploadForm, qui vérifiera si le format et la taille de l'image répondent aux exigences.

class UploadForm extends CFormModel
{
 public $upload;
 private $options;
 private $type;
 public function __construct($type, $options){
  $this->options = $options;
  $this->type = $type;
 }
 /**
  * Declares the validation rules.
  * The rules state that username and password are required,
  * and password needs to be authenticated.
  */
 public function rules()
 {
  return array(
   array('upload', 'file', 
    'types' => $this->options->getAttribute("allow_".$this->type."_type"), 
    'maxSize' => 1024 * (int)$this->options->getAttribute("allow_".$this->type."_maxsize"),
    'tooLarge'=>'文件大小超过限制',
   ),
  );
 }
}
Copier après la connexion

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

À propos de Yii Méthode Framework pour obtenir toutes les sous-classes de la catégorie

Comment Yii2 utilise le plug-in Bootbox pour implémenter des fenêtres contextuelles personnalisées

 Utilisez les autorisations Yii2 rbac pour contrôler le menu

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
yii
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!