首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP:从ftp服务器(proftpd)获取文件

PHP:从ftp服务器(proftpd)获取文件
EN

Stack Overflow用户
提问于 2014-02-06 11:46:12
回答 1查看 758关注 0票数 1

我有网站,从远程ftp服务器()加载配置文件(每一个网页5-15个)。

当用户打开(刷新)只有一个网页-一切正常,页面呈现为快速(~100毫秒)。当用户在web浏览器上一个接一个地打开4-6个选项卡(在打开选项卡之间延迟1秒左右)时,avg1-3网页呈现得很快,但4-6页显示得太慢(高达60秒或更长时间)。

我发现瓶颈:这是ftp_get() php函数,当从ftp获取文件时,它会冻结到ftp_connect()中设置的超时时间。只有ftp_get()冻结网页呈现。

代码语言:javascript
运行
复制
public function getConfigViaFtp($config_name)
{
    $handle = fopen('php://temp', 'r+');
    ftp_fget($this->getFtpConnectionStream(), $handle, $config_name, FTP_ASCII);
    rewind($handle);

    return stream_get_contents($handle);
}

我是ssh远程ftp服务器,运行ftptop来查看页面冻结时的连接。proftpd只有一个与命令'RETR‘的连接。

ftp_get总是成功地从ftp获得第一个文件(有时高达5个文件),但是另一个文件总是空的(但在ftp服务器上是存在的,而不是空的)和ftp_get超时。

我试着:

代码语言:javascript
运行
复制
ob_start(); 
$result = ftp_get($this->getFtpConnectionStream(), 'php://output', $config_name, FTP_ASCII);
$data = ob_get_contents();
ob_end_clean();

试试ftp_pasv()

但什么也没有:( ftp_get()和网页仍然冻结了大量的时间,并且没有在每个网页的末尾加载文件内容。

出什么事了?proftpd设置(默认设置)还是其他什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-07 12:03:04

解决了: ftp_pasv()就在ftp_login()之后,但在ftp_connect和everithing之后工作得很好:)

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

https://stackoverflow.com/questions/21602040

复制
相关文章

相似问题

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