php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #20400 Doing: base64_encode on JPG & GIF images. Error: The function ends prematurely.
Submitted: 2002-11-12 14:25 UTC Modified: 2002-11-12 15:45 UTC
From: dromar84 at msn dot com Assigned:
Status: Not a bug Package: *Graphics related
PHP Version: 4.2.1 OS: win32
Private report: No CVE-ID: None
 [2002-11-12 14:25 UTC] dromar84 at msn dot com
The following PHP script is stable on *NIX platforms but unstable on Win32 platorms.

<?php
$LineLength = 50;

$uploadfile = 'PATH TO IMAGE';
$uploadfile_name = 'PATH TO IMAGE';

$fd = fopen ($uploadfile, "r");
$size = filesize ($uploadfile);
$c = substr ("$uploadfile_name", strrpos ($uploadfile_name, ".") + 1 );
$cont = fread ($fd, $size);
fclose ($fd);
$encimg = base64_encode ($cont);
$imgcode = chunk_split ("$encimg", $LineLength, "'.'"); 
print $imgcode;
?>

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2002-11-12 14:30 UTC] derick@php.net
Please try using this CVS snapshot:

  http://snaps.php.net/php4-latest.tar.gz
 
For Windows:
 
  http://snaps.php.net/win32/php4-win32-latest.zip
 [2002-11-12 14:31 UTC] iliaa@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. 

Thank you for your interest in PHP.

On windows you need to open binary files with 'rb' not 'r'. 
If you still experience the problem even after changing the fopen flags try using the latest CVS snapshot.
 [2002-11-12 14:31 UTC] dromar84 at msn dot com
I intend to use this script to store mutiple image files in a database or in one compressed file. If anyone knows of a better way to accomplish this task, I would appriciate it if you could tell me.

p.s. I am aware that using base64_encode will not result in a compressed file.
 [2002-11-12 15:45 UTC] dromar84 at msn dot com
The problem is fixed by using 'rb'(read binary) instead of 'r'(read) inside of the fopen flag on Win32 platforms.

Just another 3-bit mistake by the script writer.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Wed Nov 13 02:01:31 2024 UTC