PHP CKEditor 上傳圖片實現代碼

來源:互聯網
上載者:User

我花了一個下午的時間,自己用PHP指令碼寫了一個處理上傳檔案的指令碼代碼,沒有做更多的安全處理,希望對大家有用。
首先,在你的config.js檔案裡添加如下代碼: 複製代碼 代碼如下:CKEDITOR.editorConfig = function( config )
{
config.filebrowserImageUploadUrl = './upload.php?type=img';
config.filebrowserFlashUploadUrl = './upload.php?type=flash';
};

以上的配置是上傳要處理到的檔案的地址,你可以根據自己情況進行修改。upload.php檔案如下: 複製代碼 代碼如下:<?php
/*
CKEditor_upload.php
monkee
2009-11-15 16:47
*/
$config=array();
$config['type']=array("flash","img"); //上傳允許type值
$config['img']=array("jpg","bmp","gif"); //img允許尾碼
$config['flash']=array("flv","swf"); //flash允許尾碼
$config['flash_size']=200; //上傳flash大小上限 單位:KB
$config['img_size']=500; //上傳img大小上限 單位:KB
$config['message']="上傳成功"; //上傳成功後顯示的訊息,若為空白則不顯示
$config['name']=mktime(); //上傳後的檔案命名規則 這裡以unix時間戳記來命名
$config['flash_dir']="/ckeditor/upload/flash"; //上傳flash檔案地址 採用絕對位址 方便upload.php檔案放在站內的任何位置 後面不加"/"
$config['img_dir']="/ckeditor/upload/img"; //上傳img檔案地址 採用絕對位址 採用絕對位址 方便upload.php檔案放在站內的任何位置 後面不加"/"
$config['site_url']=""; //網站的網址 這與圖片上傳後的地址有關 最後不加"/" 可留空
//檔案上傳
uploadfile();
function uploadfile()
{
global $config;
//判斷是否是非法調用
if(empty($_GET['CKEditorFuncNum']))
mkhtml(1,"","錯誤的功能調用請求");
$fn=$_GET['CKEditorFuncNum'];
if(!in_array($_GET['type'],$config['type']))
mkhtml(1,"","錯誤的檔案調用請求");
$type=$_GET['type'];
if(is_uploaded_file($_FILES['upload']['tmp_name']))
{
//判斷上傳檔案是否允許
$filearr=pathinfo($_FILES['upload']['name']);
$filetype=$filearr["extension"];
if(!in_array($filetype,$config[$type]))
mkhtml($fn,"","錯誤的檔案類型!");
//判斷檔案大小是否符合要求
if($_FILES['upload']['size']>$config[$type."_size"]*1024)
mkhtml($fn,"","上傳的檔案不能超過".$config[$type."_size"]."KB!");
//$filearr=explode(".",$_FILES['upload']['name']);
//$filetype=$filearr[count($filearr)-1];
$file_abso=$config[$type."_dir"]."/".$config['name'].".".$filetype;
$file_host=$_SERVER['DOCUMENT_ROOT'].$file_abso;
if(move_uploaded_file($_FILES['upload']['tmp_name'],$file_host))
{
mkhtml($fn,$config['site_url'].$file_abso,$config['message']);
}
else
{
mkhtml($fn,"","檔案上傳失敗,請檢查上傳目錄設定和目錄讀寫權限");
}
}
}
//輸出js調用
function mkhtml($fn,$fileurl,$message)
{
$str='<script type="text/javascript">window.parent.CKEDITOR.tools.callFunction('.$fn.', \''.$fileurl.'\', \''.$message.'\');</script>';
exit($str);
}
?>

代碼打包下載

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.