在Dedecms(织梦内容管理系统)中,远程发布图片到服务器是一项常见需求,通过配置和使用不同的云存储服务,可以实现这一功能,以下是关于如何将图片从本地上传到远程服务器的详细步骤和相关FAQs:
使用又拍云存储
1、准备工作:
确保服务器的PHP版本 >= 5.5,推荐使用PHP 7.0。
下载并解压缩phpsdk压缩包(例如phpsdk3.3.0.zip),并将其复制到Dedecms的include目录下。
2、修改文件:
打开/include/dialog/select_images_post.php
文件,找到并修改以下代码段:
$fullfilename = $cfg_basedir.$activepath."/".$filename;
修改为:
$fullfilename = $activepath."/".$filename;
或者:
$fullfilename = '/'.md5($_SERVER['HTTP_HOST']).$activepath."/".$filename;
在该语句下面增加如下代码块:
/* * $filename_name : 11ZF215300B29.jpg * $filename : 190702/11ZF2152U3440.jpg * $activepath : /uploads/allimg */ # 上传图片到又拍云存储 开始 require_once DEDEINC . "/upyunphpsdk/vendor/autoload.php"; use UpyunUpyun; use UpyunConfig; $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 失败!");
使用阿里云OSS
1、准备工作:
开通阿里云OSS服务,并获取相应的密钥信息。
下载最新的php SDK开发包。
2、配置与修改:
在conf.inc.php配置文件中填写OSS相关信息如ID、key等。
在Dedecms的include目录新建一个OSS目录,并将SDK中的文件复制到该目录。
在文章处理函数inc_archives_functions.php文件中引用:
require_once(DEDEINC.'/OSS/tutorial.php');
修改inc_archives_functions.php中有关图片上传的部分,使用tutorial.php里的upload_by_file函数上传到OSS服务器,并替换图片地址为OSS的远程地址。
常见问题解答(FAQs)
1、Q: Dedecms远程附件图片整合阿里云存储OSS插件教程中是否支持FTP形式操作?
A: 不支持,目前dedecms系统本身实现的远程附件功能是基于FTP上传的,而阿里云是通过web来上传的,官方并未提供ftp形式操作的支持。
2、Q: 如何解决Dedecms无法保存远程图片到本地服务器的问题?
A: 确保编辑区域上方的“下载远程图片和资源”选项被勾选,并在系统设置里面的其他选项中选择“远程图片本地化”,检查网站目录中是否有allimg文件夹,以及确保服务器上没有禁用fsockopen()函数,如果问题依然存在,尝试将fsockopen替换为stream_socket_client。
通过以上步骤和解答,用户可以有效地将图片从本地上传到远程服务器,无论是使用又拍云还是阿里云OSS,都能实现这一需求,解决常见问题也能确保整个过程的顺利进行。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1233983.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复