我正試圖從FTP服務器下載gunzipped文件。通過FTP下載gunzipped文件
它似乎成功下載(正確的文件大小等),但是當我提取內容時,它失敗,指出數據格式被違反。
如果我使用FileZilla等FTP客戶端手動下載相同的文件,然後將其解壓縮,解壓縮工作,這意味着我的PHP下載文件不正確。
這裏是我的代碼:
$this->_file = 'data.csv.gz';
$this->_directory = DOC_ROOT.'/imports/';
private function _loadFromFtpDataSource($url=null,$username=null,$password=null) {
try {
$conn_id = ftp_connect($url);
$login_result = ftp_login($conn_id, $username, password);
ftp_pasv($conn_id, true);
$handle = fopen($this->_directory . $this->_file, "w");
ftp_fget($conn_id, $handle, $this->_file, FTP_ASCII, 0);
ftp_close($conn_id);
fclose($handle);
} catch (Exception $e) {
$this->status = false;
error_log("Failed to connect to ftp server");
}
}
任何人都可以看到任何理由爲什麼它可能無法正確下載?在通過FTP下載gunzip文件時是否需要特別注意?
不熟悉PHP代碼下載,但它可能是下降到二進制/文本模式FTP。 –
* gzipped。 gunzip用於解壓縮gzip文件。 – JJJ