Discuz系统学习:远程附件-Discuz教程下载
登录
/
注册
首页
Portal
Discuz模板
Discuz插件
Discuz教程
DIV模块素材
站长导航
技术分享
问题反馈
Discuz!数据字典
TAG标签
站长工具
Discuz站长交流群欢迎您的加入:493651246
兔源码站长交流群:493651246 欢迎您的加入!
Discuz站长2000人QQ交流群:493651246
站长工具
Favicon图标转换器
提供在线裁剪图片,并转换为favicon.ico文件。
CSS美化工具
提供在线 CSS 代码在线格式化和美化。
二维码生成器
快速生成二维码,自定义大小、生成码及颜色。
HTML编辑器
输入HTML、CSS、JS代码,实时运行效果。
Markdown编辑器
编写markdown代码,并在浏览器中实时预览。
SQL格式化
实现SQL语句的在线压缩与格式化功能。
URL编码解码
在线将普通URL相互转换转为编码URL的工具。
随机密码生成器
提供在线生成随机卡密等等。
站长导航
站长工具
开发工具
站长平台
IDC服务商
注册交易
SEO及安全
开放平台
CDN及SSL
源码资源
自媒体平台
图片工具
小程序平台
投资理财
常用工具
友情链接
网络硬盘
TAG标签
Discuz
网站模板
discuz插件
免费
原创
商业版
文章
下载地址
GBK
门户
手机版
自适应
模板
插件
编辑器
UTF8
数据库
伪静态
博客
论坛
模块
分类信息
主题
全部TAG
Discuz!数据字典
站长之家
[
/
登录
/
注册
]
Discuz站长群邀您加入
草根站长交流群欢迎您
广告招租:3197813386
网站一条龙搭建服务
——网站快速搭建——
——建网站,找我们——
首页
Portal
Discuz模板
Discuz插件
Discuz教程
DIV模块素材
站长导航
技术分享
问题反馈
帖子
搜索
本版
文章
帖子
用户
帖子
勋章
设置
收藏
退出
返回列表
tuyuanma
2017-1-16 06:45:48 ・
Discuz教程
关注
Discuz系统学习:远程附件
[ 复制链接 ]
来自
版块
:
Discuz教程
发表于:
2017-1-16 06:45:48
38265
0
如本资源下载地址失效,请点击此处进行反馈
1。远程附件设置
Discuz
软件提供了一个远程附件的功能,启用后能将站内上传的各种文件(如日志文章帖子里加的相册
图片
和文章帖子里加的附件)都放在和网站
服务器
分离的一个远程空间里去。谢谢网友 carry0987 提供了这样一个空间,让我能有机会测试下这个功能。他提供的远程空间信息是(文中的用户名和密码是虚拟的):
FTP主機IP: 31.170.165.167
FTP主機名: ftp.qbnehs.esy.es
FTP用戶名: u123456784
FTP密碼: A1234567
在我的测试网站
http://distst.website/
dz
32
上的管理中心的全局->上传设置->远程附件里做了如下设置:
主动模式和被动模式是FTP通信里的两种工作模式,名称源于服务器端是否向客户端发起连接,见
http://www.slacksite.com/other/ftp.html
里的介绍。有些FTP服务器只支持主动模式,有些只支持被动模式(如
Godaddy
),有些两种都支持。FTP客户端必须用服务器端支持的模式来和服务器通信。
下面是在看到的远程空间里的内容:
在设置时填写的'远程附件目录'(我上面填的是test)相当于基本设置里的'本地附件保持位置'(默认值是./data/attachment),两者下面有同样的文件夹结构。
现在在日志文章相册和论坛里加的图片和附件都到了远程空间:
而且在相册里将图片删掉和论坛里将附件删掉后,它们在远程空间里也立刻消失了。
再从cPanel进入我的网站服务器里看,那些上传文件都没存在网站服务器里,而只存在了远程空间里。网站服务器上只有空文件夹。
2。如何在程序里接触远程附件
先看看如何在程序里得到远程附件里的设置值。它们的值在程序里都可以按它们的设置名来获取: getglobal('setting/ftp/设置名') 或 $_G['setting']['ftp']['设置名'] 。下面是那些设置项的
标签
和设置名的对应表:
启用远程附件 on
启用
SSL
连接 ssl
FTP 服务器地址: host
FTP 服务器端口: port
FTP 帐号: username
FTP 密码: password
被动模式(pasv)连接: pasv
远程附件目录: attachdir
远程访问 URL: attachurl
FTP 传输超时时间: timeout
允许的附件扩展名: allowedexts
禁止的附件扩展名: disallowedexts
附件尺寸下限: minsize
隐藏远程附件真实路径: hideurl
比如'启用远程附件'设置值可用 getglobal('setting/ftp/on') 或 $_G['setting']['ftp']['on'] 来得到。
PHP提供了一整套与远程空间联系的FTP客户端函数,见
http://php.net/manual/zh/ref.ftp.php
,而Discuz将它们包在了一个叫discuz_ftp的单例模式的类里,定义在文件source/class/discuz/discuz_ftp.php里。然后又在文件source/function/function_core.php里定义了函数 ftpcmd 作为统一入口来调用discuz_ftp类里的各函数。所以所有用到Discuz里远程附件功能的地方就只要调用这个函数就行了。
下面以在相册里上传图片为例看看是如何用这个函数的。在上传图片时,浏览器给网站服务器发了下面的请求:
POST /discuz32/misc.php?mod=swfupload&action=swfupload&operation=album HTTP/1.1
复制代码
在服务器端是由下面这些脚本文件来传递和合作处理这个请求的:
misc.php
=> source/module/misc/misc_swfupload.php
=> pic_save in source/function/function_spacecp.php
复制代码
上传后的图片先存在了网站本地附件目录里。如果网站启用了远程附件的话,会将刚存在本地的图片拷贝到远程空间去,然后再删除本地图片。其中用到 ftpcmd 的相关代码就在函数 pic_save 内:
if(getglobal('setting/ftp/on')) {
$ftpresult = ftpcmd('upload', 'album/'.$upload->attach['attachment']);
if($ftpresult) {
@unlink($_G['setting']['attachdir'].'album/'.$upload->attach['attachment']);
复制代码
回复
举报
综合
最新
热度
发表评论
全部评论 0
期待你的评论哦~
最佳新人
注册账号后积极发帖的会员,发帖数 ≥ 100
管理/版主
此勋章为兔源码管理或版主专属勋章
土豪装逼
此勋章为兔源码土豪装逼勋章,只要100兔币购买即可
教程 / CSS+DIV素材
Discuz教程
CSS+DIV素材
1
【原创】discuz论坛分类信息中,帖子发布页有多个图片上传功能,
277人阅读
2
【原创】修改discuz门户文章发布时间,将默认时间yyyy-mm-dd修改
292人阅读
3
【实测】Discuz修改论坛列表页排序,实现主题帖子按最新发表时间
351人阅读
4
Discuz! X3.2 - X3.4 升级至 Discuz! X3.5 详细教程
379人阅读
5
【原创】根据论坛发帖时间或门户文章发布时间,判断时间是否为当
376人阅读
1
Discuz浮窗多图的DIY单页素材
269人阅读
2
html5+css3的浮窗单图DIY模块
304人阅读
3
html5+css3的横排导航列表DIY模块
427人阅读
4
html5+css3的四排图文资讯列表DIY模块
519人阅读
5
垂直时光轴HTML单页+CSS+js模块
1184人阅读
发布新话题
所属版块
返回版块
高级模式
您需要登录后才可以回帖
立即登录
发送
本版积分规则
回帖后跳转到最后一页
登录
返回顶部