摘要 腾兴网为您分享:PHP文件上传实现上传到另一台服务器,作业盒子,自动刷宝,盈益云,小太阳等软件知识,以及手机mp3格式转换器,积木图纸,驾驶证分系统网站,finereader12,2017年日历表,网吧锁,lol透视,委屈表情,sheetworks,直播弹幕软件,韩游网,yy3.0,e润保,zalora,末世等软件it资讯,欢迎关注腾兴网。在php中我们如果要上传到另一台服务器就需要利用php一个ftp功能,在php中提供了 ftp_connect来连接服务器,然后把我们上传的数据传到远程服务器哦,下面我来给各位朋友介绍。 ftp_conn...

在php中我们如果要上传到另一台服务器就需要利用php一个ftp功能,在php中提供了 ftp_connect来连接服务器,然后把我们上传的数据传到远程服务器哦,下面我来给各位朋友介绍。

ftp_connect() 函数建立一个新的 FTP 连接。

若成功,则返回一个连接标识,否则返回 false。

语法

host 必需。规定要连接的 FTP 服务器。可以是域名或 IP 地址。

后面不应以斜线结尾,前面也不需要用 ftp:// 开头。

port 可选。规定 FTP 服务器的端口。

timeout 可选。规定该 FTP 服务器的超时时间。默认是 90 秒。

然后在台式机本地做了个测试:

 代码如下 复制代码
$ftp_server = "192.168.1.100";

$ftp_user_name = "laohu";

$ftp_user_pass = "123456";

$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

$file = 'test.txt';

$remote_file = '/test/a.txt';

// 注意:这里的"/test"指的是ftp根目录下的test文件夹,而非系统跟目录下的

test

 代码如下 复制代码

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {

echo "文件移动成功";

} else {

echo "移动失败";

}

ftp_close($conn_id);

运行后:文件移动成功。

要的就是这个效果了,之后用台式机做程序服务器,上传附件时全用ftp方法上传至笔记本上,笔记本ip是105,相

应代码如下:

 代码如下 复制代码

if (is_uploaded_file($_FILES['uploadfile']['tmp_name'])) {

$ftp_server = "192.168.1.105";

$ftp_user_name = "lesley";

$ftp_user_pass = "123456";

$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server");

$file = $_FILES['uploadfile']['tmp_name'];

$remote_file = '/test/'.$_FILES['uploadfile']['name'];

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

if (ftp_put($conn_id, $remote_file, $file, FTP_BINARY)) {

echo "文件:".$_FILES['uploadfile']['name']."上传成功";

} else {

echo "上传失败";

}

ftp_close($conn_id);

}

对应的前台页面代码:

 代码如下 复制代码

运行后确实成功。

下面看一个ftp文件上传类

 代码如下 复制代码

/**

* desc:FTP类

* link:www.jquerycn.cn

* date:2013/02/24

*/

class ftp

{

public $off;  // 返回操作状态(成功/失败)

public $conn_id;  // FTP连接

/**

* 方法:FTP连接

* @FTP_HOST -- FTP主机

* @FTP_PORT -- 端口

* @FTP_USER -- 用户名

* @FTP_PASS -- 密码

*/

function __construct($FTP_HOST,$FTP_PORT,$FTP_USER,$FTP_PASS)

{

$this->conn_id = @ftp_connect($FTP_HOST,$FTP_PORT) or die("FTP服务器连接失败");

@ftp_login($this->conn_id,$FTP_USER,$FTP_PASS) or die("FTP服务器登陆失败");

@ftp_pasv($this->conn_id,1); // 打开被动模拟

}

/**

* 方法:上传文件

* @path-- 本地路径

* @newpath -- 上传路径

* @type-- 若目标目录不存在则新建

*/

function up_file($path,$newpath,$type=true)

{

if($type) $this->dir_mkdirs($newpath);

$this->off = @ftp_put($this->conn_id,$newpath,$path,FTP_BINARY);

if(!$this->off) echo "文件上传失败,请检查权限及路径是否正确!";

}

/**

* 方法:移动文件

* @path-- 原路径

* @newpath -- 新路径

* @type-- 若目标目录不存在则新建

*/

function move_file($path,$newpath,$type=true)

{

if($type) $this->dir_mkdirs($newpath);

$this->off = @ftp_rename($this->conn_id,$path,$newpath);

if(!$this->off) echo "文件移动失败,请检查权限及原路径是否正确!";

}

/**

* 方法:复制文件

* 说明:由于FTP无复制命令,本方法变通操作为:下载后再上传到新的路径

* @path-- 原路径

* @newpath -- 新路径

* @type-- 若目标目录不存在则新建

*/

function copy_file($path,$newpath,$type=true)

{

$downpath = "c:/tmp.dat";

$this->off = @ftp_get($this->conn_id,$downpath,$path,FTP_BINARY);// 下载

if(!$this->off) echo "文件复制失败,请检查权限及原路径是否正确!";

$this->up_file($downpath,$newpath,$type);

}

/**

* 方法:删除文件

* @path -- 路径

*/

function del_file($path)

{

$this->off = @ftp_delete($this->conn_id,$path);

if(!$this->off) echo "文件删除失败,请检查权限及路径是否正确!";

}

/**

* 方法:生成目录

* @path -- 路径

*/

function dir_mkdirs($path)

{

$path_arr  = explode('/',$path);  // 取目录数组

$file_name = array_pop($path_arr);// 弹出文件名

$path_br  = count($path_arr);// 取层数

foreach($path_arr as $val)// 创建目录

{

if(@ftp_chdir($this->conn_id,$val) == FALSE)

{

$tmp = @ftp_mkdir($this->conn_id,$val);

if($tmp == FALSE)

{

echo "目录创建失败,请检查权限及路径是否正确!";

exit;

}

@ftp_chdir($this->conn_id,$val);

}

}

for($i=1;$i<=$path_br;$i)  // 回退到根

{

@ftp_cdup($this->conn_id);

}

}

/**

* 方法:关闭FTP连接

*/

function close()

{

@ftp_close($this->conn_id);

}

}

// class class_ftp end

?>

调用代码

 代码如下 复制代码

/***

* desc:调用示例

* link:www.jquerycn.cn

* date:2013/2/24

*/

$ftp = new ftp('192.168.0.249',21,'hlj','123456');  // 打开FTP连接

$ftp->up_file('aa.wav','test/13548957217/bb.wav'); // 上传文件

//$ftp->move_file('aaa/aaa.php','aaa.php');// 移动文件

//$ftp->copy_file('aaa.php','aaa/aaa.php');// 复制文件

//$ftp->del_file('aaa.php');   // 删除文件

$ftp->close(); // 关闭FTP连接

?>

需要注意,在用ftp_put方法时,第四个参数传送模式,需要用FTP_BINARY(二进制模式),用FTP_ASCII(文本模式)

时,图片能上传但无法显示,其他文件重命名、中文乱码解决、上传权限控制等,就不在此提及了。

相关推荐

php上传文件到三方,文件上传服务器_PHP文件上传实现上传到另一台服务器相关推荐

  1. 仅通过SQL备份文件将MOSS服务器场及所有网站数据迁移到新的一台服务器上

    背景: 这是一次完整到服务器迁移项目.现有MOSS的物理环境是两台服务器,一台后台的SQL服务器,一台前台的Web服务器.SQL服务器为Win03+SQL05,Web服务器为Win03+MOSS07. ...

  2. 分卷压缩并解压 (线上服务器如何把很大的数据拷贝到另外一台服务器上)

    用法:split [选项]... [输入 [前缀]] 选项: -a, --suffix-length=N 指定后缀长度为N (默认为2) -b, --bytes=大小 指定每个输出文件的字节大小 -C ...

  3. 向腾讯云windows服务器传输文件,如何上传本地文件到腾讯云Windows服务器上?

    在做运维的过程中经常遇见客户问,如何上传本地数据到Windows云服务器上. 相对Linux云服务器,针对新人朋友Windows云服务器是可视化的更加容易理解.云服务器就是我们租用了腾讯云机房的一台服 ...

  4. nginx负载均衡两台服务器文件,Nginx之负载均衡 :两台服务器均衡(填坑)

    第一步,两台服务器都要安装好Nginx和Tomcat,我这边的安装的是Nginx 1.16.1 Tomcat9: 第二步,安装完成之后,选择你要做均衡的那台服务器,,打开其Nginx 配置文件,在se ...

  5. 在一台服务器上搭多个网站的解决方案

    以前一直困惑于80端口就一个,如何才能在一台服务器上布署多个网站呢?最近因为公司服务器需要实现这个需求,才去认真的研究其中的原理与布署方案,本文总要记录winodws服务器下apache与iis的配置 ...

  6. 上云的先行军,QQ 率先完成了20万台服务器全量上云,是怎么做到的?

    作者 | 田晓旭 截止到目前,QQ 所有的业务都已经迁移到了腾讯云上. 2019 年 1 月 4 日,腾讯技术委员会正式成立,同时下设了两个项目组"开源协同"和"自研上云 ...

  7. JSP中的文件操作:数据流、File类、文件浏览、目录操作、上传下载

    ​ 文件可以永久地存储信息,从本质上讲文件就是存放在盘上的一系列数据的集合.应用程序如果想长期保存数据,就必须将数据存储到文件中,这就涉及到文件的操作.而在编写网站应用程序的过程中,有许多地方要对文件 ...

  8. 如何限制上传服务器的文件容量,如何通过配置php文件限制上传文件的大小

    在网站开发的过程中,为了确保能够充分利用服务器的空间,在开发上传功能时,必须对上传文件的大小进行控制.那么我们如何进行对上传文件的大小进行控制呢? 控制文件的大小可以从两个方面入手: 第一个是在PHP ...

  9. java使用Jsch实现远程操作linux服务器进行文件上传、下载,删除和显示目录信息...

    1.java使用Jsch实现远程操作linux服务器进行文件上传.下载,删除和显示目录信息. 参考链接:https://www.cnblogs.com/longyg/archive/2012/06/2 ...

最新文章

  1. VC2008 忽然无法调试DLL的解决方法
  2. coredump调试的使用
  3. PhantomJS 与python的结合
  4. 今天 ,给大家变个魔术!!!
  5. android4.0.3去掉底部状态栏statusbar,全屏显示示例代码
  6. 机器学习入门:多变量线性回归
  7. 董明珠上榜中国杰出商界女性100
  8. 【PAT Advanced Level】1011. World Cup Betting (20)
  9. phpstudy下载、安装、配置、网站部署、卸载
  10. DOS命令行界面打开文件
  11. Detached InstanceError:Instance is not bound to a Session 关闭session后使用SQLAlchemy对象
  12. 华为q1设置虚拟服务器,华为路由Q1上网设置【图文】教程 | 192路由网
  13. C++ __builtin_函数
  14. Deep Learning Hierarchical Representations for Image Steganalysis【Ye-Net:图像隐写分析的深度学习层次表示】
  15. python使用 docx 库操作 docx 格式文件
  16. 高中英语完形填空同义词90%选项
  17. 科学与信仰水火不容吗?
  18. 电脑每次启动都硬盘自检
  19. GRUB Error 28: Selected item cannot fit into memory
  20. 关于极坐标下图像旋转与二维傅里叶变换的讨论

热门文章

  1. 正则表达式元符号大全
  2. 如何解决Mac电脑在启动时卡在Apple 标志或进度条画面?
  3. 设计思考——时间分配
  4. 袁莎中央音乐学院 古筝学习方法
  5. “芯片荒”危机致汽车销量持续下滑,加快推进智慧供应链深化应用迫在眉睫
  6. 星巴克最大丑闻曝光,全球媒体刷屏!我们喝进嘴里的咖啡,竟然都是这种东西…
  7. PLC与单片机有什么不同?
  8. 软件是什么,什么是软件
  9. datasource oracle,OracleDataSource连接报告异常?
  10. wpsmac和pc版的区别_后悔用苹果装Windows 对比发现macOS实在是太好用了