關於UEditor遠端圖片上傳失敗的解決辦法
因為單純喜歡 UEditor 的介面,於是把專案中原先的編輯器進行的替換,但在後續操作中發現一些問題,就是遠端圖片上傳。
遠端圖片上傳是個很有意思的東西,比如你從別的網站複製一段檔案,如果文字中帶有圖片,編輯器會自動將圖片提取出來,進行上傳,從而不用擔心遠端圖片失效後,自己本地也無法瀏覽。
通過檢查,發現遠端圖片上傳的操作頁面是:getRemoteImage.php 。開啟後我們先配置 savePath ,因為不同使用者使用,需要存放到不同的目錄,以免混亂,也方便管理
修改後程式碼:
//遠端抓取圖片配置 if (isset( $_SESSION [ `admin` ])){
$myPath = `http://www.cnblogs.com/../dofiles/ueditorUpload/admin/` . $_SESSION [ `admin` ][ `id` ]. `/` ;
} else if (isset( $_SESSION [ `user` ])){
$myPath = `http://www.cnblogs.com/../dofiles/ueditorUpload/user/` . $_SESSION [ `user` ][ `id` ]. `/` ;
} else {
$myPath = `http://www.cnblogs.com/../dofiles/ueditorUpload/unkonw/` ;
} $config = array (
"savePath" => $myPath , //儲存路徑
"allowFiles" => array ( ".gif" , ".png" , ".jpg" , ".jpeg" , ".bmp" ) , //檔案允許格式
"maxSize" => 3000 //檔案大小限制,單位KB
); |
然後問題就來了,UEditor 裡,檔案、圖片上傳都是通過 Uploader.class.php 這個php類操作的,但遠端圖片上傳則不是。
我在85行發現,建立路徑的時候,單純的使用了mkdir進行來建立,因為mkdir不能建立帶有層級的路徑,所以導致在路徑如果不存在的情況下,複製遠端圖片上傳失敗。
知道問題處理起來就容易了,我先寫一個迴圈建立檔案目錄的函式(因為之前寫過,這裡就直接拿來用了):
//連續建立帶層級的資料夾 function recursive_mkdir( $folder ){
$folder = preg_split( "/[\\/]/" , $folder );
$mkfolder = `` ;
for ( $i =0; isset( $folder [ $i ]); $i ++){
if (! strlen (trim( $folder [ $i ]))){
continue ;
}
$mkfolder .= $folder [ $i ];
if (! is_dir ( $mkfolder )){
mkdir ( "$mkfolder" ,0777);
}
$mkfolder .= DIRECTORY_SEPARATOR;
}
} |
然後修改85行:
//建立儲存位置 $savePath = $config [ `savePath` ];
if ( ! file_exists ( $savePath ) ) {
recursive_mkdir( $savePath );
//mkdir( "$savePath" , 0777 );
} |
這樣一來,就沒有問題了。
這問題也已經提交給百度官方,希望修正。
測試UEditor版本為1.2.3.0,如果之前版本也有相關問題,按照修改思路去修改應該也可以解決。
本文轉自胡尐睿丶部落格園部落格,原文連結:http://www.cnblogs.com/hooray/archive/2012/08/29/2661727.html,如需轉載請自行聯絡原作者
相關文章
- 上傳檔案(圖片)失敗 error=6 找不到臨時檔案解決辦法Error
- chrome上傳圖片 路徑為c:/fakepath的解決辦法Chrome
- 關於 SQLyog 遠端連線 Linux 系統的 MySQL 失敗的解決方法LinuxMySql
- VScode 更新失敗解決辦法VSCode
- npm install 失敗解決辦法NPM
- 關於 Nuxt 整合ueditor的一些坑(包括圖片上傳)前端部分UX前端
- PbootCMS後臺圖片上傳提示:”上傳失敗:儲存目錄建立失敗!“boot
- pbootcms後臺圖片上傳提示:上傳失敗:儲存目錄建立失敗!boot
- jquery圖片直接貼上上傳的失敗嘗試jQuery
- puppeteer 安裝失敗的解決辦法
- 遠端連線 Mysql 失敗的解決方法MySql
- NPM run dev 失敗解決辦法NPMdev
- vue+springboot實現圖片的上傳及回顯失敗問題的解決VueSpring Boot
- dns解析失敗無法瀏覽器上網解決辦法DNS瀏覽器
- PbootCMS網站後臺圖片上傳提示:“上傳失敗:儲存目錄建立失敗!”boot網站
- PbootCMS網站後臺圖片上傳提示:”上傳失敗:儲存目錄建立失敗!“boot網站
- python 安裝pandas失敗的解決辦法Python
- ueditor jsp版上傳圖片到阿里雲JS阿里
- Ueditor 上傳圖片自動新增水印(只能上傳圖片,上傳檔案報錯)
- Ueditor上傳圖片自動新增水印(通用圖片檔案)
- 關於npm install失敗的解決方法NPM
- Win10系統下ie瀏覽器上傳圖片失敗怎麼解決Win10瀏覽器
- PHP7中session的值跨頁傳遞失敗的解決辦法PHPSession
- PbootCMS上傳圖片變模糊、上傳圖片尺寸受限的解決方案boot
- mac vscode 更新失敗:Permission denied解決辦法MacVSCode
- 遠端連線關閉,專案就停止的解決辦法
- IDEA、Pycharm提示解除安裝失敗的解決辦法IdeaPyCharm
- ionic3打包失敗的解決辦法
- wordpress 外掛 (主題)線上安裝失敗 解決辦法探索
- 百度AI studio克隆失敗解決辦法AI
- node-sass 安裝失敗的原因及解決辦法
- npm install realm --save失敗的問題與解決辦法NPM
- 圖片載入失敗解決方案 以及canvas即時生成提示圖片Canvas
- QQ空間無法上傳多張圖片解決方案
- pycharm 安裝包總失敗原因及解決辦法PyCharm
- pip安裝selenium一直失敗解決辦法
- 解決:連線遠端redis服務失敗(在linux部署)RedisLinux
- 解決linux rz傳輸失敗Linux
- mysql拒絕遠端連結,解決辦法MySql