我最近遇到了一个问题,在我的应用程序的高流量期间,使用 cURL/FTP 以零字节发送小型 CSV 文件。但是,当我在我的文件系统上查看文件时,我可以看到它绝对不是空的,而且大小也不是零字节。
这是我的 PHP 代码:
$ch = curl_init();
$fp = fopen($bFile, 'r');
curl_setopt($ch, CURLOPT_URL, 'ftp://'.FTP_SERVER .'/'.FTP_DIRECTORY.$file_name);
curl_setopt($ch, CURLOPT_USERPWD, FTP_USER.':'.FTP_PASS);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($bFile));
curl_setopt($ch, CURLOPT_FTP_USE_EPSV, false);
curl_exec($ch);
我在 cURL 返回错误的代码中也有一些基本的错误处理:
if ( curl_error($ch) ) {
throw new Exception("File could not be sent via FTP: " . curl_error($ch));
}
但是,我注意到在这个例子中没有抛出异常并且代码继续执行的情况。
是否有任何理由让我的文件系统上有一个 5Kb CSV 文件,但我将文件发送到的 FTP 服务器只有一个零字节文件?这是否指向传输问题,可能是由每年这个时候的大量流量引起的?