|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2007-04-11 18:31 UTC] tony2001@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Sat Nov 22 23:00:01 2025 UTC |
Description: ------------ FTP function converts text file into Windows Text file always while in ASCII mode. ftp_fput() uploads a file assuming a Linux to Windows upload always. when used in the opposite direction an extra 0x0D character is inserted because the 0x0A character is always replaced with 0x0D+0x0A. Reproduce code: --------------- <?php // usage: php test.php filename.txt username password server // filename.txt must have crlf at the end of every line. $conn_id = ftp_connect($argv[4]); if ( @ftp_login($conn_id, $argv[2], $argv[3]) ) { $fhand = fopen($argv[1], 'rb'); if ( $fhand ) { ftp_delete($conn_id, $argv[1]); $ftpmode = FTP_BINARY; // automatic ftp mode selection // Bug #39583 FTP function always transfers in binary mode // Bug FTP function converts text file into Windows Text file always while in ASCII mode. if ( eregi(".txt$",$argv[1]) ) $ftpmode = FTP_ASCII; // try to upload $file if (ftp_fput($conn_id, $argv[1], $fhand, $ftpmode, 0)) { echo "Successfully uploaded file\n"; } else echo "Found an error\n"; } } ?> Expected result: ---------------- filename.txt at server repository... In: CRLF Out: CRCRLF In: LF Out: CRLF Actual result: -------------- none