介绍
小编给大家分享一下thinkphp中使用ftp上传图片的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
图片上传功能应该是个极为普遍的,在此参考了thinkphp框架中的集成方法整理了一下ftp图片的上传功能,这样方便在后台操作时,把有关的图片直接上传到线上的图片服务器,避免大流量访问的图片加载缓慢,降低网站的访问压力。
<强> 1,前端设计强>
这里主要为了测试功能的实现,使用最简单的设计,既方便参考又有利于后期的功能扩展。如下附上传。html主要代码,着重注意红框圈出的代码,其中css样式比较简单,需要的可以参考后面的源代码。
<强> 2,后台控制器设计强>
config.class。php主要代码如下所示,其中设计的表“相依”在此只需用两个字段就好——& # 39;标签# 39;& # 39;价值# 39;,可以使用简单的varchar类型
public function 上传(){ ,,,if (IS_POST) { ,,,,,,,foreach (_FILES 美元;as key 美元;=祝辞,美元值){ ,,,,,,,,,,,img 美元;=,handleImg(关键); ,,,,,,,,,,,furl 美元;=,C (& # 39; REMOTE_ROOT& # 39;)。img美元; ,,,,,,,,,,,if (img美元){ ,,,,,,,,,,,,,,,ftp_upload(卷起,img美元); ,,,,,,,,,,,,,,,美元saveData[& # 39;价值# 39;],=,img美元; ,,,,,,,,,,,,,,,米(& # 39;相依# 39;) ,,,,,,,,,,,,,,,,,,,,,(“tag =, & # 39;“。美元关键!”& # 39;“) ,,,,,,,,,,,,,,,,,,,→保存($ saveData); ,,,,,,,,,,,} ,,,,,,,} ,,,,,,,这个→美元成功(& # 39;FTP 测试完成& # 39;,U(& # 39;配置/上传# 39;),2); 还有,,,}{ ,,,,,,,imgUrl 美元;=,M(& # 39;相依# 39;) ,,,,,,,,,,,,,(“tag =, & # 39; upImg& # 39;“) ,,,,,,,,,,,→getField(& # 39;价值# 39;); ,,,,,,,这个→美元分配(& # 39;imgUrl& # 39;, imgUrl美元); ,,,,,,,这个美元→显示(); ,,,} }
<强> 3,配置数据强>
在公共配置文件中,进行如下常量的数据配置,参考代码如下,注意配置FTP账号及密码的正确性,此处安全起见只是举例。
,,,,,,//FTP(外网服务器)上传文件相关参数 ,,,,,& # 39;FTP_SEVER& # 39;,,,,,,,=祝辞,& # 39;http://img.52zhenmi.com& # 39;,,,//此地址,作为图片读取的位置,请上线前仔细确认 ,,,,,& # 39;FTP_HOST& # 39;,,,,,,,=祝辞,& # 39;img.52zhenmi.com& # 39; ,,,,,& # 39;WEB_SEVER& # 39;,,,,,,=祝辞,& # 39;http://img.52zhenmi.com& # 39; ,,,,,& # 39;WEB_M_SERVER& # 39;,,,,=祝辞,& # 39;http://www.52zhenmi.com/m& # 39; , , ,,,,,& # 39;FTP_NAME& # 39;,,,,,,,=祝辞,& # 39;fexxxi& # 39;,//ftp帐户 ,,,,,& # 39;FTP_PWD& # 39;,,,,,,,,=祝辞,& # 39;1 qxxxxxxw& # 39;//ftp密码 ,,,,,& # 39;ftp_port # 39;,,,,,,,=祝辞,& # 39;21 & # 39;//ftp端口,默认为21 ,,,,,& # 39;FTP_PASV& # 39;,,,,,,,=祝辞,真的,//是否开启被动模式,真正的开启,默认不开启 ,,,,,& # 39;FTP_SSL& # 39;,,,,,,,,=祝辞,假的,//ssl连接,默认不开启 ,,,,,& # 39;FTP_TIMEOUT& # 39;,,,,=祝辞,60,//超时时间,默认60,单位,s ,,,,,& # 39;REMOTE_ROOT& # 39;,,,,=祝辞,& # 39;/& # 39;//图片服务器根目录
<强> 4,引入文件强>
以我的代码为例,在此引用了两个文件,其中的FTP.class。php放在了& # 39;/图书馆/认为# 39;目录下;
Upload.class。php放在了& # 39;/图书馆/Org/Net& # 39;目录下,可根据自己的使用习惯自行调整目录,只要保证实例化路径时没问题就可。
<强> 5,公共函数添加强>
注意添加上文步骤2中使用到的公共函数。
/* * ,*图片上传的公共处理方法 ,* @param string  fileName 美元;图片上传的名字 ,* @return string 图片的存储路径 ,*/function handleImg ($ fileName) { ,,,如果(带有_file美元($ fileName) [& # 39; tmp_name& # 39;], !=,““) { ,,,,,,,img 美元;=,带有_file美元($ fileName); null null null null null null null null null null null null null null null null null null nullthinkphp中使用ftp上传图片的方法