Rumah pembangunan bahagian belakang tutorial php Yii结合CKEditor实现图片上传功能_PHP教程

Yii结合CKEditor实现图片上传功能_PHP教程

Jul 13, 2016 am 10:28 AM
ckeditor yii Muat naik imej

这几天做的一个项目中需要在所见即所得编辑器中实现图片上传的功能,我因为比较喜欢CKEditor的界面而选择了它。虽然有跟CKEditor配合良好的CKFinder,不过这个东东的功能太复杂,简单看了下CKEdtior的文档,发现这个功能还是可以自己实现而不用借助CKFinder的。

下面代码虽然基于Yii Framework的,但是用其他框架或者语言思路却是完全一样的,有需要的童鞋可以参考一下。

首先要让CkEditor出现图片上传的功能,需要配置编辑器的filebrowserImageUploadUrl属性:

复制代码 代码如下:

CKEDITOR.replace( 'editor1',
    {
        filebrowserUploadUrl : '/uploader/upload.php',
        filebrowserImageUploadUrl : '/uploader/upload.php?type=Images'
    });

然后在对应的URL上实现图片上传的功能,并向CKEditor返回特定格式的HTML代码,CKEditor就能正常预览并插入图片了。
下面只截取控制器的部分代码,Controller部分我是这样实现的:
复制代码 代码如下:

/**
 * 保存上传的图片
 *
 * @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);
}

需要特别说明的mkhtml函数,他会调用CKEditor的函数产生提示信息。上传成功的时候将图片链接返回,CKEditor会根据URL生成图片预览。

然后是UploadForm的代码,这里会验证图片的格式和大小是否符合要求。

复制代码 代码如下:

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'=>'文件大小超过限制',
   ),
  );
 }
}

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/802217.htmlTechArticle这几天做的一个项目中需要在所见即所得编辑器中实现图片上传的功能,我因为比较喜欢CKEditor的界面而选择了它。虽然有跟CKEditor配合良好...
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cipta editor teks kaya menggunakan PHP dan CKEditor Cipta editor teks kaya menggunakan PHP dan CKEditor May 11, 2023 pm 04:06 PM

Dengan penggunaan aplikasi web yang meluas, mencipta editor teks yang kaya telah menjadi lebih biasa. CKEditor diiktiraf secara meluas sebagai salah satu penyunting teks kaya terbaik kerana kebolehsesuaian yang baik dan kemudahan penggunaannya. Artikel ini akan memperkenalkan cara mencipta editor teks kaya menggunakan PHP dan CKEditor. Pengenalan kepada CKEditor CKEditor ialah penyunting teks kaya merentas platform yang dilaksanakan melalui JavaScript. Ia menyediakan bar alat yang intuitif dan mudah difahami, termasuk gaya fon, pemformatan, grafik, dsb.

Langkah-langkah untuk melaksanakan muat naik dan paparan imej menggunakan rangka kerja CakePHP Langkah-langkah untuk melaksanakan muat naik dan paparan imej menggunakan rangka kerja CakePHP Jul 29, 2023 pm 04:21 PM

Langkah-langkah untuk melaksanakan muat naik dan paparan imej menggunakan rangka kerja CakePHP Pengenalan: Dalam aplikasi web moden, muat naik dan paparan imej adalah keperluan fungsian biasa. Rangka kerja CakePHP menyediakan pembangun dengan fungsi yang berkuasa dan alatan yang mudah, menjadikannya mudah dan cekap untuk memuat naik dan memaparkan imej. Artikel ini akan memperkenalkan anda kepada cara menggunakan rangka kerja CakePHP untuk memuat naik dan memaparkan imej. Langkah 1: Buat borang muat naik fail Pertama, kita perlu mencipta borang dalam fail paparan untuk pengguna memuat naik imej. Berikut adalah contoh

Applet WeChat melaksanakan fungsi muat naik imej Applet WeChat melaksanakan fungsi muat naik imej Nov 21, 2023 am 09:08 AM

Applet WeChat melaksanakan fungsi muat naik gambar Dengan perkembangan Internet mudah alih, applet WeChat telah menjadi bahagian yang amat diperlukan dalam kehidupan orang ramai. Program mini WeChat bukan sahaja menyediakan pelbagai senario aplikasi, tetapi juga menyokong fungsi yang ditentukan oleh pembangun, termasuk fungsi muat naik imej. Artikel ini akan memperkenalkan cara untuk melaksanakan fungsi muat naik imej dalam applet WeChat dan memberikan contoh kod khusus. 1. Kerja persediaan Sebelum mula menulis kod, kita perlu memuat turun dan memasang alat pembangun WeChat dan mendaftar sebagai pembangun WeChat. Pada masa yang sama, anda juga perlu memahami WeChat

Cara menggunakan PHP dan Vue untuk melaksanakan fungsi muat naik imej Cara menggunakan PHP dan Vue untuk melaksanakan fungsi muat naik imej Sep 25, 2023 pm 03:17 PM

Cara menggunakan PHP dan Vue untuk melaksanakan fungsi muat naik imej Dalam pembangunan web moden, fungsi muat naik imej adalah keperluan yang sangat biasa. Artikel ini akan memperkenalkan secara terperinci cara menggunakan PHP dan Vue untuk melaksanakan fungsi muat naik imej, dan memberikan contoh kod khusus. 1. Bahagian hadapan (Vue) Pertama, anda perlu mencipta borang untuk memuat naik imej pada bahagian hadapan. Kod khusus adalah seperti berikut:<template><div><inputtype="fil

Cara mengendalikan muat naik imej dan pemampatan dalam pembangunan teknologi Vue Cara mengendalikan muat naik imej dan pemampatan dalam pembangunan teknologi Vue Oct 08, 2023 am 10:58 AM

Cara mengendalikan muat naik imej dan pemampatan dalam pembangunan teknologi Vue Dalam aplikasi web moden, muat naik imej adalah keperluan yang sangat biasa. Walau bagaimanapun, disebabkan penghantaran rangkaian dan sebab storan, memuat naik terus imej asal resolusi tinggi boleh mengakibatkan kelajuan muat naik yang perlahan dan pembaziran ruang storan yang besar. Oleh itu, memuat naik dan memampatkan imej adalah sangat penting. Dalam pembangunan teknologi Vue, kami boleh menggunakan beberapa penyelesaian sedia untuk mengendalikan muat naik dan pemampatan imej. Berikut akan memperkenalkan cara menggunakan vue-upload-comone

Masalah muat naik dan pemangkasan imej yang dihadapi dalam pembangunan Vue Masalah muat naik dan pemangkasan imej yang dihadapi dalam pembangunan Vue Oct 08, 2023 pm 04:12 PM

Tajuk: Masalah muat naik dan pemangkasan imej dan penyelesaian dalam pembangunan Vue Pengenalan: Dalam pembangunan Vue, muat naik dan pemangkasan imej adalah keperluan biasa. Artikel ini akan memperkenalkan masalah muat naik dan pemangkasan imej yang dihadapi dalam pembangunan Vue, dan memberikan penyelesaian serta contoh kod khusus. 1. Masalah muat naik imej: Memilih butang muat naik imej tidak boleh mencetuskan kotak pemilihan fail: Masalah ini biasanya disebabkan oleh peristiwa tidak terikat dengan betul atau peristiwa terikat tidak berkuat kuasa. Anda boleh mengikat peristiwa klik dalam templat dan mencetuskan kotak pemilihan fail dalam kaedah yang sepadan. Contoh kod:

Cara menggunakan ThinkPHP6 untuk memuat naik imej Cara menggunakan ThinkPHP6 untuk memuat naik imej Jun 20, 2023 pm 09:25 PM

Dengan perkembangan Internet, muat naik imej telah menjadi ciri penting dalam pembangunan laman web dan aplikasi. Dalam bidang PHP, ThinkPHP6 telah menjadi rangka kerja pembangunan yang sangat popular. Dalam artikel ini, kami akan memperkenalkan cara menggunakan ThinkPHP6 untuk melaksanakan muat naik imej. 1. Buat projek dan pengawal Pertama, kita perlu mencipta projek ThinkPHP6 baharu. Anda boleh menggunakan Komposer untuk memasangnya, atau anda boleh memuat turun versi terkini daripada tapak web rasmi. Selepas pemasangan selesai, masukkan dalam konsol

Cara menggunakan rangka kerja PHP Yii untuk membangunkan sistem sandaran awan yang sangat tersedia Cara menggunakan rangka kerja PHP Yii untuk membangunkan sistem sandaran awan yang sangat tersedia Jun 27, 2023 am 09:04 AM

Dengan perkembangan berterusan teknologi pengkomputeran awan, sandaran data telah menjadi sesuatu yang mesti dilakukan oleh setiap perusahaan. Dalam konteks ini, amat penting untuk membangunkan sistem sandaran awan yang sangat tersedia. Rangka kerja PHP Yii ialah rangka kerja berkuasa yang boleh membantu pembangun membina aplikasi web berprestasi tinggi dengan cepat. Berikut akan memperkenalkan cara menggunakan rangka kerja Yii untuk membangunkan sistem sandaran awan yang sangat tersedia. Mereka bentuk model pangkalan data Dalam rangka kerja Yii, model pangkalan data adalah bahagian yang sangat penting. Kerana sistem sandaran data memerlukan banyak jadual dan hubungan

See all articles