From:             miccots at gmail dot com
Operating system: All
PHP version:      5.2.4
PHP Bug Type:     *General Issues
Bug description:  ftp_size() of big files

Description:
------------
Hello.
Function ftp_size() woks strange for files which size is mjre then 2^16
bytes. 
When checking size after uploading it returns -1. But if close and open
connection it returns the correct result (after sprintf('%u', $size));
So, this function could not determine size of big file until reconnect.

Reproduce code:
---------------
<?php

$start_time = microtime(TRUE);
$ftp_ip = 'ftp_ip';
$local_file = 'local_file.fil';
$remote_file = 'file_1.fil';

$conn = ftp_connect($ftp_ip, 21);
ftp_login($conn, 'anonymous','[EMAIL PROTECTED]');
ftp_pasv($conn, TRUE);

echo "\n Time spent: ".(microtime(TRUE) - $start_time)."s... Trying to
upload ".sprintf('%u', filesize($local_file))." bytes.\n";
echo "\n Time spent: ".(microtime(TRUE) - $start_time)."s... 1st attempt:
ftp_put_returned: ".(ftp_put($conn, $remote_file, $local_file,
FTP_BINARY)?'TRUE':'FALSE')."\n";
echo "\n Time spent: ".(microtime(TRUE) - $start_time)."s... Size of
uploaded file before reconnect: ".sprintf('%u', ftp_size($conn,
$remote_file))." (".ftp_size($conn, $remote_file).") bytes\n";
echo "\nReconnect...\n";

ftp_close($conn);
$conn = ftp_connect($ftp_ip, 21);
ftp_login($conn, 'anonymous','[EMAIL PROTECTED]');
ftp_pasv($conn, TRUE);

echo "\n Time spent: ".(microtime(TRUE) - $start_time)."s... Size of
uploaded file after reconnect: ".sprintf('%u', ftp_size($conn,
$remote_file))." (".ftp_size($conn, $remote_file).") bytes\n";
ftp_close($conn);

?>

Actual result:
--------------
 Time spent: 0.01035213470459s... Trying to upload 3532439032 bytes.
 Time spent: 0.010672092437744s... 1st attempt: ftp_put_returned: FALSE
 Time spent: 661.11731815338s... Size of uploaded file before reconnect:
4294967295 (-1) bytes
Reconnect...
 Time spent: 661.12095808983s... Size of uploaded file after reconnect:
3532439032 (-762528264) bytes


-- 
Edit bug report at http://bugs.php.net/?id=43211&edit=1
-- 
Try a CVS snapshot (PHP 4.4): 
http://bugs.php.net/fix.php?id=43211&r=trysnapshot44
Try a CVS snapshot (PHP 5.2): 
http://bugs.php.net/fix.php?id=43211&r=trysnapshot52
Try a CVS snapshot (PHP 5.3): 
http://bugs.php.net/fix.php?id=43211&r=trysnapshot53
Try a CVS snapshot (PHP 6.0): 
http://bugs.php.net/fix.php?id=43211&r=trysnapshot60
Fixed in CVS:                 http://bugs.php.net/fix.php?id=43211&r=fixedcvs
Fixed in release:             
http://bugs.php.net/fix.php?id=43211&r=alreadyfixed
Need backtrace:               http://bugs.php.net/fix.php?id=43211&r=needtrace
Need Reproduce Script:        http://bugs.php.net/fix.php?id=43211&r=needscript
Try newer version:            http://bugs.php.net/fix.php?id=43211&r=oldversion
Not developer issue:          http://bugs.php.net/fix.php?id=43211&r=support
Expected behavior:            http://bugs.php.net/fix.php?id=43211&r=notwrong
Not enough info:              
http://bugs.php.net/fix.php?id=43211&r=notenoughinfo
Submitted twice:              
http://bugs.php.net/fix.php?id=43211&r=submittedtwice
register_globals:             http://bugs.php.net/fix.php?id=43211&r=globals
PHP 3 support discontinued:   http://bugs.php.net/fix.php?id=43211&r=php3
Daylight Savings:             http://bugs.php.net/fix.php?id=43211&r=dst
IIS Stability:                http://bugs.php.net/fix.php?id=43211&r=isapi
Install GNU Sed:              http://bugs.php.net/fix.php?id=43211&r=gnused
Floating point limitations:   http://bugs.php.net/fix.php?id=43211&r=float
No Zend Extensions:           http://bugs.php.net/fix.php?id=43211&r=nozend
MySQL Configuration Error:    http://bugs.php.net/fix.php?id=43211&r=mysqlcfg

Reply via email to