百度ueditorPHP版本编辑器将图片上传到非项目根路径

简介: UEditor 的页面在 a.com 下,serverUrl指向域名在 b.com 域下。这个官方文档是有介绍的:跨域上传。链接:http://fex.baidu.com/ueditor/#dev-crossdomain

QQ图片20220426214908.jpg

这里记录下  百度ueditorPHP版本编辑器将图片上传到非项目根路径

通俗点解释就是:


UEditor 的页面在 a.com 下,serverUrl指向域名在 b.com 域下


这个官方文档是有介绍的:跨域上传,这个我就不废话了。


下边是链接:


http://fex.baidu.com/ueditor/#dev-crossdomain

 

说实话,我没看懂……主要是麻烦(我懒)

 

我就想,我先把图片传到A下,成功之后,再将A下的图片剪切到B下。


然后再将config.php下的imageUrlPrefix(图片访问路径前缀)修改成B的域名。

这应该是可行的吧。


嗯,实践出真知。开始我漫长的调试之路


最开始,尝试了一下move_upload_file()  函数。


结果,报错。


百度了一下 move_upload_file() 函数作用的是 HTTP POST 上传的图片。


又百度了一下。Php把一个文件复制剪切到另一个文件夹的函数还有


copy()   rename()


这两个试了一下,但是有点麻烦。copy复制成功之后,还需要删除源文件。

 

Emmmmm……这可如何是好。


这个时候,我想到了万能的linux命令。


mv /www/1.txt /aaa/   将www目录下的1.txt文件移动到aaa目录下


不多废话了,上代码


<?php
//header('Access-Control-Allow-Origin: http://www.baidu.com'); //设置http://www.baidu.com允许跨域访问
//header('Access-Control-Allow-Headers: X-Requested-With,X_Requested_With'); //设置允许的跨域header
date_default_timezone_set("Asia/Chongqing");
error_reporting(E_ERROR);
header("Content-Type: text/html; charset=utf-8");
header("Access-Control-Allow-Origin");
$CONFIG = json_decode(preg_replace("//*[sS]+?*//", "", file_get_contents("config.json")), true);
$action = $_GET['action'];
switch ($action) {
    case 'config':
        $result =  json_encode($CONFIG);
        break;
    /* 上传图片 */
    case 'uploadimage':
    /* 上传涂鸦 */
    case 'uploadscrawl':
    /* 上传视频 */
    case 'uploadvideo':
    /* 上传文件 */
    case 'uploadfile':
        $result = include("action_upload.php");
        break;
    /* 列出图片 */
    case 'listimage':
        $result = include("action_list.php");
        break;
    /* 列出文件 */
    case 'listfile':
        $result = include("action_list.php");
        break;
    /* 抓取远程文件 */
    case 'catchimage':
        $result = include("action_crawler.php");
        break;
    default:
        $result = json_encode(array(
            'state'=> '请求地址出错'
        ));
        break;
}
//********************************* 移动图片start ************************************
$date = date("Ymd",time());
$dir = "/var/www/html/aaa/public/ueditor/".$date;//目标文件夹(如果不存在,就创建)
if(!is_dir($dir)){
    mkdir($dir);
}
$a = json_decode($result,true);//对上传成功之后的结果进行解析(如果图片上传成功)
if($a['url'] != null && $a['url'] != ''){
    $url = "/var/www/html/bbb/public".$a['url'];//这是上传图片路径
    $new_url = $dir.'/';//这是剪切目标路径
    $linux = "mv ".$url.' '.$new_url;//拼接linux命令
    exec($linux);//执行命令
    $a['url'] = '/ueditor/'.$date.'/'.$a['title'];//给解析的结果集重新赋值
    $result = json_encode($a);//再将其转成json串,输出到前台
}
//********************************* 移动图片end ************************************
/* 输出结果 */
if (isset($_GET["callback"])) {
    if (preg_match("/^[w_]+$/", $_GET["callback"])) {
        echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')';
    } else {
        echo json_encode(array(
            'state'=> 'callback参数不合法'
        ));
    }
} else {
    echo $result;
}


我后添加的代码都有对应的注释。将上边的路径换成你自己的应该就好用了。


注意:json_decode()  括号内需要 添加一个true,不然会报错。



目录
相关文章
|
1月前
|
开发框架 JavaScript 前端开发
百度富文本编辑器配置(vue3)
百度富文本编辑器配置(vue3)
|
1月前
|
Ubuntu 定位技术
百度搜索:蓝易云【ubuntu全版本通用换源教程,超详细教程】
现在,你已经成功地更换了Ubuntu系统的软件源。新的源地址将提供更快的下载速度和更稳定的软件包更新。
56 2
|
1月前
|
并行计算 Ubuntu
百度搜索:蓝易云【ubuntu系统如何查看已安装cudnn版本】
请注意,这种方法假定你已经正确安装了cuDNN,并且路径 `/usr/local/cuda/include/cudnn.h`是默认的安装路径。如果你的安装路径不同,你需要相应地调整命令中的路径。
92 2
|
1月前
|
机器学习/深度学习 并行计算 PyTorch
百度搜索:蓝易云【Pytorch和CUDA版本对应关系】
请注意,上述版本对应关系只是示例,并非详尽无遗。实际上,PyTorch的每个版本通常会支持多个CUDA版本,而具体支持的CUDA版本也可能因操作系统、硬件配置等因素而有所不同。因此,在使用PyTorch时,建议参考PyTorch官方文档或社区支持的信息,以获取最准确和最新的PyTorch与CUDA版本对应关系。
136 2
|
1月前
uni-app项目中如何添加百度统计代码?
uni-app项目中如何添加百度统计代码?
|
1月前
|
Ubuntu Linux
百度搜索:蓝易云【Linux设置默认编辑器(qbit)】
现在,你已经成功将默认编辑器设置为qbit。在终端中输入 `editor`命令或打开文本文件时,系统将使用qbit作为默认编辑器来打开文件。请注意,`update-alternatives`命令还可以用于设置其他默认应用程序。
89 3
|
8月前
|
Linux
百度搜索:蓝易云 ,Linux下更新curl版本教程!
通过按照上述步骤,您可以成功更新Linux系统中的curl版本。请确保在更新之前备份任何重要数据,并在操作过程中仔细阅读和遵循curl源代码的相关文档和指南。
77 0
|
3天前
ueditor1.5 百度富文本 编辑器增加字间距功能及按钮
ueditor1.5 百度富文本 编辑器增加字间距功能及按钮
5 0
|
22天前
|
存储 缓存 开发工具
初识Unity——unity的安装以及工程介绍(安装unity hub、版本选择、中文设置、安装编辑器、Assets文件、Library 文件、[ProjectName].sln 文件)
初识Unity——unity的安装以及工程介绍(安装unity hub、版本选择、中文设置、安装编辑器、Assets文件、Library 文件、[ProjectName].sln 文件)
74 0
|
1月前
|
JavaScript 搜索推荐 定位技术
【百度地图2.5D、3D在Vue项目中的使用】嵌入二维百度地图、三维百度地图、多种显示模式风格样式颜色的百度地图
【百度地图2.5D、3D在Vue项目中的使用】嵌入二维百度地图、三维百度地图、多种显示模式风格样式颜色的百度地图