把网站图片和php程序分离,我的图片服务器和WEB应用服务器相分离的简单方案
只是简单说明一下原理,其它的自己探索吧:)
一、两个域名:www.domain.com和img.domain.com
二、在www域名的服务器中上传文件:
up.html
save.php
if(@$_GET['action']=="ok")
{
$picname="upfile/".rand().".jpg";
move_uploaded_file($_FILES['itname']['tmp_name'],$picname);
}
$ftp_server="img.domain.com";//要连接的服务器域名
$con=ftp_connect($ftp_server);//连接FTP服务器
ftp_login($con,"username","password");//发送用户名和密码
$tempstate=ftp_put($con,"drckness.jpg",$picname,FTP_BINARY)//以二进制方式上传文件
if($tempstate){
echo "上传成功";
unlik($picname);//删除www服务器上的图片当然你也可以保留
}else{
echo "上传未成功";
};
ftp_quit($conn);// 关闭联接,不然会一直开着占用资源
以上只是说明如何实现图片和WEB分离的原理。在实际开发中,还要进行如:上传检测,水印,缩略图生成,冗余判断,延时间操作,图片路径记录等操作。
但只要明白了原理其它的应该不在话下了吧:)
=================================================
下面是我总结的PHP的FTP常用函数大全:)
php的ftp相关函数使用
// 联接FTP服务器
$conn = ftp_connect("ftp.server.com");
为了初结化一个FTP联接,PHP提供了ftp_connect()这个函数,它使用主机名称和端口作为参数。在上面的例子里,主机名字为“ftp.server.com”;如果端口没指定,PHP将会使用“21”作为缺省端口来建立联接。
联接成功后ftp_connect()传回一个handle句柄;这个handle将被以后使用的FTP函数使用
===========================================================================================================
// 使用username和password登录
ftp_login($conn, "john", "doe");
一旦建立联接,使用ftp_login()发送一个用户名称和用户密码。你可以看到,这个函数ftp_login()使用了ftp_connect()函数传来的handle,以确定用户名和密码能被提交到正确的服务器。
============================================================================================================
// 关闭联接
ftp_quit($conn);
记得使用ftp_quit来关闭联接:)
======================================================
$here = ftp_pwd($conn);//获取当前所在目录位置
$server_os = ftp_systype($conn);//操作系统类型
ftp_pasv($conn,1);//打开ftp的被动传输模式
(说明:
FTP传输过程中要求建立一个专门的连接来传输数据,建立连接有两个方法:
一个就是FTP Server打开一个端口,Client可以去连接这个端口来建立连接。这就是PASV方式。
一个就是FTP Client打开一个端口,Server去连接这个端口来建立连接。这就是PORT方式。
显然,如果服务器打开了一个端口,就意味着向互联网打开了一个端口。所以PORT方式比PASV方式安全,但同时也存在客户端因为
防火墙问题而有可能连接失败。所以我认为一般默认就可以:)
)
ftp_chdir($conn, "htmldir");//进入htmldir目录
ftp_cdup($conn);//返回上一级目录
ftp_mkdir($conn, "mktest");//建立一个mktest的目录,如果成功则返回目录名字,如果不成功返回FALSE
ftp_rmdir($conn, "rmtest");//删除一个目录,成功true,失败false
ftp_put($conn, "xyz.txt", "abc.txt", FTP_ASCII);//上传文件到服务器,参数(连接,远程生成的文件名,本地的文件名,FTP_ASCEE为文本传输/FTP_BINARY为二进制方式上传)
ftp_get($conn, "hers.zip", "his.zip", FTP_BINARY);//下载文件到本地服务器
$filelist = ftp_nlist($conn, ".");//简单列出文件名和目录
$filelist = ftp_rawlist($conn, ".");//详细列出文件名大小,权限,日期等等两个函数都返回数组
$filelist = ftp_size($conn, "data.zip");//取得文件的大小
=========更多函数参考手册=================================================
ftp_alloc -- Allocates space for a file to be uploaded ftp_cdup -- 切换到当前目录的父目录 ftp_chdir -- 在 FTP 服务器上切换当前目录 ftp_chmod -- Set permissions on a file via FTP ftp_close -- 关闭一个活动的 FTP 连接 ftp_connect -- 建立一个新的 FTP 连接 ftp_delete -- 删除 FTP 服务器上的一个文件 ftp_exec -- 请求运行一条 FTP 命令 ftp_fget -- 从 FTP 服务器上下载一个文件并保存到本地一个已经打开的文件中 ftp_fput -- 上传一个已经打开的文件到 FTP 服务器 ftp_get_option -- 返回当前 FTP 连接的各种不同的选项设置 ftp_get -- 从 FTP 服务器上下载一个文件 ftp_login -- 登录 FTP 服务器 ftp_mdtm -- 返回指定文件的最后修改时间 ftp_mkdir -- 建立新目录 ftp_nb_continue -- 连续获取/发送文件(non-blocking) ftp_nb_fget -- Retrieves a file from the FTP server and writes it to an open file (non-blocking) ftp_nb_fput -- Stores a file from an open file to the FTP server (non-blocking) ftp_nb_get -- 从 FTP 服务器上获取文件并写入本地文件(non-blocking) ftp_nb_put -- 存储一个文件至 FTP 服务器(non-blocking) ftp_nlist -- 返回给定目录的文件列表 ftp_pasv -- 返回当前 FTP 被动模式是否打开 ftp_put -- 上传文件到 FTP 服务器 ftp_pwd -- 返回当前目录名 ftp_quit -- ftp_close() 的别名 ftp_raw -- Sends an arbitrary command to an FTP server ftp_rawlist -- 返回指定目录下文件的详细列表 ftp_rename -- ü FTP ·÷¨ ftp_rmdir -- 删除一个目录 ftp_set_option -- è÷ FTP ± ftp_site -- 向服务器发送 SITE 命令 ftp_size -- 返回指定文件的大小 ftp_ssl_connect -- Opens an Secure SSL-FTP connection ftp_systype -- 返回远程 FTP 服务器的系统类型
把网站图片和php程序分离,我的图片服务器和WEB应用服务器相分离的简单方案相关推荐
- c语言画bmp五星红旗图片,用asp程序编写一个bmp图片格式的五星红旗
用asp程序编写一个bmp图片格式的五星红旗 搜索 今天看到一个用asp程序编写一个bmp图片格式的五星红旗,像手绘的一样,很好,把它转过来和大家分享 view sourceprint?001 ...
- php图片转字符程序,PHP文字转图片功能原理与实现方法分析
本文实例讲述了PHP文字转图片功能.分享给大家供大家参考,具体如下: 这项功能主要用于对邮箱地址.手机等可能被网络爬虫抓取的重要信息的处理.将文字转化为图片绝对是个好注意.验证码的基本生成原理也与此差 ...
- uni-app微信小程序image引入图片;background-image背景图引入图片;小程序预览本地图片;小程序图片过大引入报错;获取本地图片的网络地址;
uni-app小程序图片使用有image标签和background-image背景图两种方式: 下有获取本地图片的网络地址方式:见第四步 一.方式一:使用image标签引入: uni-app官方ima ...
- html2canvas给图片添加水印,小程序用Canvas给图片加水印,拼接图片,制作名片
Canvas是微信小程序中的一个原生组件,因此我们在使用它的时候要特别注意微信小程序对原生组件的使用说明.canvas这个组件其实就是一个画布,你可以在上面画很多你用其他方式不好实现的内容.下面我就将 ...
- c语言触屏滑动图片,微信小程序左右滑动切换图片酷炫效果(附效果)(示例代码)...
开门见山,先上效果吧!感觉可以的用的上的再往下看. 心动吗?那就继续往下看! 先上页面结构吧,也就是wxml文件,其实可以理解成微信自己封装过的html,这个不多说了,不懂也没必要往下看了. 1 2 ...
- 小网站架构优化-提升抗并发能力:子应用程序分离方案
关于现实网站的抗并发实情: 由于每个网站的性能点,最后都离不开抗并发这一话题. 也许,网站本身并没有那么多并发访问,但为何还要抗并发? 因为现实不是每个人都是善良的,商业竞争也很激烈,竞争对手间时不时 ...
- Aurigma图片上传程序是为您的网站的图片上传解决方案
Aurigma图片上传程序是为您的网站的图片上传解决方案 Aurigma图片上传器是一个强大和灵活的图像,并且可以在许多不同类型的网站可以使用文件上传的解决方案.除了影像外,任何其他文件类型也可以上传 ...
- php 图片程序分离,一个图片地址分解程序(用于PHP小偷程序),
一个图片地址分解程序(用于PHP小偷程序), 如题,返回一个数组,可以获得图片地址的base url,相对地址,名称等,具体见下例: 运行结果: array(4) { ["base_url& ...
- 网站静态化处理—动静分离策略(3)
前文里我讲到了网站静态化的关键点是动静分离,动静分离是让动态网站里的动态网页根据一定规则把不变的资源和经常变的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,这就是网 ...
最新文章
- 只有20%的iOS程序员能看懂:详解intrinsicContentSize 及 约束优先级/content Hugging/content Compression Resistance
- 【Android RTMP】RTMPDump 封装 RTMPPacket 数据包 ( 关键帧数据格式 | 非关键帧数据格式 | x264 编码后的数据处理 | 封装 H.264 视频数据帧 )
- [J2ME] Signing a midlet suite的讨论稿[Update]
- linux要求关闭httpd服务,Apache2.4.4的安装及实现service和chkconfig系统控制httpd开启关闭...
- Android程序设计基础-设计布局之伪今日头条主界面
- g++编译时的常用选项说明
- 开发过程中的注意事项,想到哪写到哪
- 前端开发学习路线图,完整学习教程+工具+框架
- verilog实现多周期处理器之——(五)移动操作(通用数据传送)指令的实现
- 十年工龄的程序员为你揭示最危害程序员职业生涯的三大观念
- 中国移动企业文化考试试题含答案
- 《UNIX网络编程 卷1》一、环境配置
- 2021计算机二级圆锥题,2021年计算机二级考试真题以及答案
- 解决chrome(谷歌)浏览器打开文件选择框响应速度慢的问题-小白实操记录
- postman设置域名_Postman中文文档——设置
- 淘宝/天猫买家信息 API 返回值说明
- 2020-09-13 滴滴-2021校招在线笔试-DE数据开发试卷
- 2018总结-店铺投资篇
- Linux中的/proc文件系统详解(C/C++代码实现)
- face to face