Jump to content

bug in ftp_get?


coennie

Recommended Posts

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

Link to comment
https://forums.phpfreaks.com/topic/38153-bug-in-ftp_get/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.