首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP下载远程文件(2 2GB)

使用PHP下载远程文件(2 2GB)
EN

Stack Overflow用户
提问于 2012-01-14 21:44:27
回答 3查看 610关注 0票数 3

我有一个大文件(2 2GB),我想用PHP将它从服务器B下载到服务器A。

我用PHP尝试了FTP和CURL,但没有成功。即使I set_time_limit()的值为0,它也会返回超时请求错误。

下面是我的代码:

代码语言:javascript
复制
<?php

set_time_limit(0)

$local_file = 'file.zip';
$server_file = '/www/file.zip';

$conn_id = ftp_connect("ftp.webmashing.com");

$login_result = ftp_login($conn_id, "USERNAME", "PASSWORD");

if (ftp_get($conn_id, $local_file, $server_file, FTP_BINARY)) {
echo "Successfully written to $local_file\n";
} else {
echo "There was a problem\n";
}

ftp_close($conn_id);

?>
EN

回答 3

Stack Overflow用户

发布于 2012-01-14 21:52:40

如果您在上传文件时遇到超时,您可以查看一下ftp_pasv()

代码语言:javascript
复制
bool ftp_pasv ( resource $ftp_stream , bool $pasv )

在您的情况下,尝试这样做:

代码语言:javascript
复制
$conn_id = ftp_connect("ftp.webmashing.com");

$login_result = ftp_login($conn_id, "USERNAME", "PASSWORD");

ftp_pasv($conn_id, true);
票数 0
EN

Stack Overflow用户

发布于 2012-01-14 22:20:46

当被调用时,set_time_limit()从零开始重新启动超时计数器。换句话说,如果超时是默认的30秒,并且在脚本执行25秒时调用了set_time_limit(20),那么在超时之前脚本将总共运行45秒。请检查php.ini中的"max_execution_time“指令

票数 0
EN

Stack Overflow用户

发布于 2012-01-14 22:35:30

如果可以(取决于执行php文件的位置),您可以将max_execution_time改得更长。

现在,我要做的是(仍然,如果你有权限的话),在命令行中调用php文件。命令行会将结果写到一个特定的文件中,您所要做的就是检查该文件的内容。

一旦写好了结果(在linux中总是说"0“表示成功),你就可以做你想做的事情了。

在前端,使用一些ajax来获取下载状态也是很有用的!

但一如既往,这取决于您是否可以运行shell命令。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8862590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档