You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ftp_put实际有效却返回错误提示,ftp_nb_put上传异常求助

问题分析与解决

一、ftp_put 提示错误但实际上传成功的原因

你的代码里条件判断逻辑完全写反了:

  • PHP的ftp_put()函数在上传成功时返回true,失败时返回false
  • 你当前的判断是if (!$upload),也就是当upload为true(上传成功)时,!$upload等于false,代码会走到else分支输出错误提示;反之上传失败时才会输出成功提示

修正后的判断逻辑:

if ($upload) {
    echo "File uploaded successfully to FTP server!";
} else {
    echo "Error uploading file! Please try again later.";
}

二、ftp_nb_put 导致页面无限加载的原因

ftp_nb_put()是非阻塞式上传函数,它不会一次性完成上传流程,需要通过循环持续调用相关函数推进上传进度,直到返回FTP_FINISHED或FTP_FAILED状态。如果缺少这个循环,脚本会一直等待上传状态变化,导致页面无限加载。

正确使用示例:

$remote_file = './PROCESS CHECKSHEET/0694384-000-AA2.xlsx';
$local_file = './PROCESS CHECKSHEET/0694384-000-AA2.xlsx';

// 初始化非阻塞上传
$upload = ftp_nb_put($ftpcon, $remote_file, $local_file, FTP_BINARY);

// 循环推进上传进度
while ($upload == FTP_MOREDATA) {
    $upload = ftp_nb_continue($ftpcon);
}

// 判断最终上传状态
if ($upload == FTP_FINISHED) {
    echo "File uploaded successfully to FTP server!";
} else {
    echo "Error uploading file! Please try again later.";
}

ftp_close($ftpcon);

内容的提问来源于stack exchange,提问作者Rillu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:20:43