php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #40445 bug in ftp_get?
Submitted: 2007-02-12 11:10 UTC Modified: 2007-02-12 11:17 UTC
From: coen at rtvnh dot nl Assigned:
Status: Not a bug Package: FTP related
PHP Version: 5CVS-2007-02-12 (CVS) OS: Windows XP
Private report: No CVE-ID: None
 [2007-02-12 11:10 UTC] coen at rtvnh dot nl
Description:
------------
I've made a script to download multiple big video files (+/- 1 GB each). When I run the script it will download the first file, but when I see the file is completely transfered (same number of bytes) the function will not 
set the file complete. It somehow waits for more data. But after 60 seconds the timeout will come in and the function gives back a false.

I've tried the same script on files of about 35 MB and there isn't any problem. All the files will be downloaded and the function will return a true.

I've made some changes in de php.ini file to be sure that wasn't the problem:
max_execution_time = 28800
max_input_time = 28800
memory_limit = 8000M
post_max_size = 8000M
upload_max_filesize = 2000M

Reproduce code:
---------------
 <?php
  ini_set('error_reporting', E_ALL);
  ini_set('display_errors', TRUE);
     $HOST="***";
     $UN="***";
     $PW="***";
     $DIR="***";

     $conn = ftp_connect($HOST);
     if(!$conn) {
        exit("Could not connect to server: $HOST\n");
    }

    if(!ftp_login($conn,$UN,$PW)) {
        ftp_quit($conn);
        exit("Could not log in\n");
    }

    ftp_chdir($conn,$DIR);
    $files = ftp_nlist($conn,".");

 $i=0;
 while($files[$i]){
     if(substr($files[$i],-4)==".mpg"){
          if(ftp_pasv( $conn, true )){echo "Pasive Mode\n";}
          $downloadpath="d:/www/phpscripts/download/".$files[$i];
          if(ftp_get($conn, $downloadpath, $files[$i],FTP_BINARY)){
          echo "Received file ".$files[$i]." ok\n";
          }
          else
          {
          echo "Did not received file ".$files[$i]." ok!\n";
          echo "Result: ".$result."\n";
          }
  }
 $i++;
 }
    ftp_quit($conn);
?>

Expected result:
----------------
I expect all files to be downloaded 1 by one. Like it does on the littler files.

Actual result:
--------------
First file will be downloaded, but doesn't see the whole file is in. And the script will delete the file that was downloaded.

This are is what the script returns:
        Pasive Mode

Warning: ftp_get(): Opening BINARY data connection for HAA - AGO REGIO 
ZONDER VO
.mpg (640526340 bytes) in D:\www\phpscripts\ftp.php on line 35
Did not received file HAA - AGO REGIO ZONDER VO.mpg ok!

Notice: Undefined variable: result in D:\www\phpscripts\ftp.php on line 47
Result:

Notice: Undefined variable: fail in D:\www\phpscripts\ftp.php on line 48

Warning: ftp_get(): Opening BINARY data connection for HAA - AGO REGIO 
ZONDER VO
.mpg (640526340 bytes) in D:\www\phpscripts\ftp.php on line 35
Did not received file HEL - VOL SAMENVATTING REGIO zonder VO.mpg ok!

Notice: Undefined variable: result in D:\www\phpscripts\ftp.php on line 47
Result:

Warning: ftp_get(): Opening BINARY data connection for HAA - AGO REGIO 
ZONDER VO
.mpg (640526340 bytes) in D:\www\phpscripts\ftp.php on line 35
Did not received file MVV - STO ZONDER VO.mpg ok!

Notice: Undefined variable: result in D:\www\phpscripts\ftp.php on line 47
Result:

Warning: ftp_get(): Opening BINARY data connection for HAA - AGO REGIO 
ZONDER VO
.mpg (640526340 bytes) in D:\www\phpscripts\ftp.php on line 35
Did not received file STO - GRA SAMENVATTING TBV REGIO ZONDER VO.mpg ok!

Notice: Undefined variable: result in D:\www\phpscripts\ftp.php on line 47
Result:

Warning: ftp_get(): Opening BINARY data connection for HAA - AGO REGIO 
ZONDER VO
.mpg (640526340 bytes) in D:\www\phpscripts\ftp.php on line 35
Did not received file VOL - FOR REGIO ZONDER VO.mpg ok!

Notice: Undefined variable: result in D:\www\phpscripts\ftp.php on line 47
Result:

Notice: Undefined offset:  5 in D:\www\phpscripts\ftp.php on line 24

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2007-02-12 11:17 UTC] tony2001@php.net
Sorry, but your problem does not imply a bug in PHP itself.  For a
list of more appropriate places to ask for help using PHP, please
visit http://www.php.net/support.php as this bug system is not the
appropriate forum for asking support questions.  Due to the volume
of reports we can not explain in detail here why your report is not
a bug.  The support channels will be able to provide an explanation
for you.

Thank you for your interest in PHP.


 
PHP Copyright © 2001-2022 The PHP Group
All rights reserved.
Last updated: Sun May 22 05:05:45 2022 UTC