php ftp 文件上传进度,使用PHP通过FTP实时上传文件

当同一脚本从其他地方下载所需文件时,是否可以使用PHP脚本将文件上传到FTP服务器? 因此,在下载脚本时,它应该实时上传文件。

从理论上讲,它像蛋糕一样容易。首先,请在此处查看FTP功能:http://www.php.net/manual/zh/function.ftp-fput.php。然后,我们使用FOPEN包装器(http://www.php.net/manual/en/wrappers.php)打开要读取的文件,并将其发送过来。

要修改php.net示例:

// open some file for reading

$file = 'somefile.txt';

$fp = fopen('ftp://user:pass@domain.com/' . $file, 'r');

// set up basic connection

$conn_id = ftp_connect($ftp_server);

// login with username and password

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

// try to upload $file

if (ftp_fput($conn_id, $file, $fp, FTP_ASCII)) {

echo"Successfully uploaded $file

";

} else {

echo"There was a problem while uploading $file

";

}

// close the connection and the file handler

ftp_close($conn_id);

fclose($fp);

?>

哦,有时候您可能希望不阻塞:http://www.php.net/manual/en/function.ftp-nb-fput.php

PHP的内置FTP扩展可以异步方式上载和下载文件。

但是,听起来您正在谈论使用此方法在两个不同的FTP连接之间传输文件,而无需先下载整个文件。我不确定这些功能是否支持。实际上,我可能会以其他方式期望-可能是在下载进行时,上载可能到达文件的末尾,而只是假设它快要结束并完成了。

在上传手册链接上有一些评论,建议您可以诱使某些服务器使用被动模式执行直接连接,但是我会花点时间。

使用FTP流包装器可能会有些运气。您可以打开两个FTP包装器作为文件句柄,然后使用fread从一侧检索特定大小的块,然后使用fwrite将它们写入另一侧。请记住,您需要循环执行此操作,因此不能像FTP扩展程序的方法那样在后台执行此操作。它也可能很慢。

PHP可以处理ftp协议,这是php手册中的示例。

PHP支持进程派生,您可以检查pnctl。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值