廢話不多說,直接上代碼
前端(前端多說一句,在初始使用階段,不知道是怎么回事,復制在看雲上的文檔的配置參數時,一直有錯誤,后台獲取不到$_file,整整一上午,下午上網搜了一下別人的上傳圖片代碼才好用,不知道是不是官方弄錯了,咱也不敢說,咱也不敢問的)
<div id="editor"></div>
<script>
var E = window.wangEditor
var editor = new E('#editor')
editor.customConfig.menus = [
'head', // 標題
'bold', // 粗體
// 'foreColor', // 文字顏色
// 'fontSize', // 字號
// 'fontName', // 字體
// 'italic', // 斜體
// 'underline', // 下划線
// 'strikeThrough', // 刪除線
// 'backColor', // 背景顏色
'link', // 插入鏈接
'list', // 列表
'justify', // 對齊方式
'quote', // 引用
'emoticon', // 表情
'image', // 插入圖片
'table', // 表格
'video', // 插入視頻
// 'code', // 插入代碼
'undo', // 撤銷
'redo' // 重復
]
//過濾粘貼過來的文本樣式
editor.customConfig.pasteFilterStyle = true
//忽略粘貼內容中的圖片
editor.customConfig.pasteIgnoreImg = false
//上傳圖片的配置
editor.customConfig.uploadFileName = 'myFile'; //設置文件上傳的參數名稱
editor.customConfig.uploadImgServer = '設置上傳路徑'; //設置上傳文件的服務器路徑
editor.customConfig.uploadImgMaxSize = 3 * 1024 * 1024; // 將圖片大小限制為 3M
//自定義上傳圖片事件
editor.customConfig.uploadImgHooks = {
before : function(xhr, editor, files) {
},
success : function(xhr, editor, result) {
console.log("上傳成功");
},
fail : function(xhr, editor, result) {
layer.msg("上傳失敗");
},
error : function(xhr, editor) {
console.log("上傳出錯");
},
timeout : function(xhr, editor) {
console.log("上傳超時");
}
}
editor.create()
E.fullscreen.init('#editor');
</script>
后端代碼,后端是自己寫的,之前一直從網上扒人家的代碼,昨天自己匆匆學習了一下,自己寫了個簡單的代碼去實現,實現邏輯無非創建到指定目錄下(file_exists函數),如果該路徑下沒有該文件夾,就新建一個文件夾,創建文件夾用mkdir,就是linux的創建文件夾命令,move_uploaded_file($tmp,$dest),$tmp是文件上傳的過來的臨時路徑,$dest是設置的保存路徑,並且是系統的絕對路徑,帶文件名。我使用的框架是tp5.1,它是不支持常量的,所以要使用系統常量必須引入think\facade\Env,后期會用到圖片壓縮的功能,所以后期還會學習記錄一下前端和后端的圖片壓縮。
public function up()
{
$file = $_FILES;
if(empty($file)){
$result["error"] = "1";
$result['data'] = '';
}else{
$tmp = $file['myFile']['tmp_name'];
$houzhui = substr($file['myFile']['type'],6);
$foder = date('Ymd',time());
$fileName = 'XX'.time().'.'.$houzhui;
$root_path = Env::get('root_path');
$dest = $root_path.'/public/upload/image/'.$foder.'/'.$fileName;
if(!file_exists($root_path.'/public/upload/image/'.$foder)){
mkdir($root_path.'/public/upload/image/'.$foder);
}
$result = move_uploaded_file($tmp,$dest);
if($result){
return json(['errno'=>0,'data'=>['/ueditor/php/upload/image/'.$foder.'/'.$fileName]]);
}else{
return json(['errno'=>2,'data'=>['上傳圖片失敗']]);
}
}
}
寫的不好,僅供自己參考使用
