DeDeCMS 织梦上传图片到服务器时,如何自动上传到又拍云存储?

1、服务器的 PHP 版本必须 >= 5.5 版本,我这里使用的是 PHP 7.0 版本;

2、下载 php-sdk 压缩版本,我这里下载的是 php-sdk-3.3.0.zip 版本;

3、把压缩包解压缩到 DeDeCMS 织梦的 include 目录下,如下图所示:

我这里把压缩包重命名为 upyun-php-sdk 了

我这里把压缩包重命名为 upyun-php-sdk 了

4、打开 \include\dialog\select_images_post.php 文件,做如下修改:

$fullfilename = $cfg_basedir.$activepath."/".$filename;

修改为:

$fullfilename = $activepath."/".$filename;
或者
$fullfilename = '/'.md5($_SERVER['HTTP_HOST']).$activepath."/".$filename;

 然后,在该语句下面增加如下语句块:

/*
 * $filename_name : 1-1ZF215300B29.jpg
 * $filename : 190702/1-1ZF2152U3440.jpg
 * $activepath : /uploads/allimg
 */

# 上传图片到又拍云存储 开始
require_once DEDEINC . "/upyun-php-sdk/vendor/autoload.php";

use Upyun\Upyun;
use Upyun\Config;

$serviceConfig = new Config('服务名称', '操作员账号', '操作员密码');
$serviceConfig->uploadType = 'AUTO';
$client = new Upyun($serviceConfig);
$local_file_path = '';
$remote_file_path = '/'.md5($_SERVER['HTTP_HOST']).$activepath.'/'.$filename;
$file = fopen($imgfile, 'r');
$client->write($remote_file_path, $file);
print_r($client);
# 上传图片到又拍云存储 结束

然后把如下语句块注释掉:

move_uploaded_file($imgfile, $fullfilename) or die("上传文件到 $fullfilename 失败!");
if($cfg_remote_site=='Y' && $remoteuploads == 1)
{
    //分析远程文件路径
    $remotefile = str_replace(DEDEROOT, '', $fullfilename);
    $localfile = '../..'.$remotefile;
    //创建远程文件夹
    $remotedir = preg_replace('/[^\/]*\.(jpg|gif|bmp|png)/', '', $remotefile);
    $ftp->rmkdir($remotedir);
    $ftp->upload($localfile, $remotefile);
}

这样就完成了整个过程了。

附带:
又拍云 php-sdk 地址: https://github.com/upyun/php-sdk/
又拍云 php-sdk 压缩版本下载地址: https://github.com/upyun/php-sdk/releases

相关文章

织梦模板建站更换logo的操作步骤:1.找到logo图片所在文件位...
织梦更适合企业建站,织梦拥有大量免费的漂亮模版,简单易用...
在织梦中设置404页面的方法1.进入织梦网站后台管理界面,在界...
解决织梦系统漏洞的方法有以下几种1.将data、templets、uplo...
织梦网站漏洞的解决办法:1.删除install安装目录。2.定期进行...
修改织梦建站变默认路径的方法:1.进入织梦cms;2.选择“系统...