binoy
binoy

Reputation: 1768

Uploading large files with PUT method

I have a page with html5 drag and drop upload feature and the file is uploading using PUT method. If I upload large image files, only part of the image is getting saved into the server. Im using the following PHP code to save the file

    $putdata = fopen("php://input", "r");
    $fp = fopen("/tmp/myputfile" . microtime() . ".jpg", "w");

    while ($data = fread($putdata, 1024))
      fwrite($fp, $data);

    fclose($fp);
    fclose($putdata);

Anything wrong with this ? please help

Upvotes: 0

Views: 638

Answers (2)

heiko
heiko

Reputation: 444

If you are on Windows, you should add the "b" to the mode-parameter of fopen(). see manual BTW. it is only a good idea to add the param for code-portability...

Upvotes: 0

iWantSimpleLife
iWantSimpleLife

Reputation: 1954

I think is becos the entire file is not completely uploaded yet when you try to read, so it sometimes will return you zero bytes read. But there might still be data being uploaded.

Maybe you can try using the feof function to check if there is any more data to be read?

see "http://www.php.net/manual/en/function.feof.php"

Upvotes: 2

Related Questions