ID:               48959
 User updated by:  trutas dot ctx at gmail dot com
 Reported By:      trutas dot ctx at gmail dot com
-Status:           Feedback
+Status:           Open
 Bug Type:         Filesystem function related
 Operating System: win32 - Windows Server 2003 x64
 PHP Version:      5.3.0
 Assigned To:      pajoye
 New Comment:

The environment could be the problem here,
 
I'm using Windows 2003 x64 with PHP x64 via fastcgi.

These are two IIS Servers with load balancer and a separate cluster 
that serves the actual run files.
PHP is installed on D:\PHP on each IIS machine.

The problem came up using the library dompdf - it saves document 
images content to temporary files in order to build the final pdf 
document.

I've reduced the problem to the test code i've attached. 
DOMPDF_TEMP_DIR is /tmp and writes to C:\Windows\tmp ...

- Please note that this problem does not happen in local folder to the

execution base (eg. "tmp_sub_folder/" ) - this only happens in the 
system tmp folder in this setup.

This is the same setup environment as the one reported in the bug 
48852 (about file_put_contents)



Regards,


Previous Comments:
------------------------------------------------------------------------

[2009-07-17 15:34:47] paj...@php.net

Cannot reproduce on 2k8, vista and win7. Pls note that I replaced the
my_file_... with the normal file_get_contents function.

Can you paste a working script pls?

------------------------------------------------------------------------

[2009-07-17 15:08:28] trutas dot ctx at gmail dot com

Just tested - file_exists() returns false incorrectly too.

I´ve worked around it all with checking for fopen($file, 'r') and
forcing file_get_contents() - it works, file exists, is readable and
returns the content.

------------------------------------------------------------------------

[2009-07-17 12:10:10] trutas dot ctx at gmail dot com

Description:
------------
is_readable() returns false for temporary file (just created)
"C:\WINDOWS\Temp\dom373.tmp" and filezise() fails too.

fopen() and get_file_contents() both work for the same file.

as a workaround i'm using fopen() instead of is_readable() and 
fseek($fopen_instance, 0, SEEK_END); instead of filesize()

Reproduce code:
---------------
//temporary location
$resolved_url = tempnam(DOMPDF_TEMP_DIR, "dompdf_img_");
//get source
$image=my_file_get_contents("http://9tree.net/favicon.ico";);
//save it
file_put_contents($resolved_url, $image);

//tests
if(is_readable($resolved_url)) print "file readable, ";
if(filesize($resolved_url)) print "filezise found.\n";

die("all done.");

Expected result:
----------------
file readable, filezise found.
all done.

Actual result:
--------------
all done.


------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=48959&edit=1

Reply via email to