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:
I'm sorry for the DOMPDF_TEMP_DIR,
Initially this problem was discovered when using dompdf in this
environment - file_get_contents was a proxy workaround.
I have fully tested this version:
Reproduce code:
---------------
<?php
//temporary location
$resolved_url = tempnam("/tmp", "test_");
//get source
$image=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.";
?>
In Unix/Win32 it works perfectly.
This is only happening in Windows Server 2003 x64 IIS 6.0 where
tempnam("/tmp", "test_") returns something like
"C:\WINDOWS\Temp\tes20FB.tmp".
in the case of filesize i get a warning - "stat failed for
C:\WINDOWS\Temp\tes20FB.tmp ..."
Regards,
Carlos
Previous Comments:
------------------------------------------------------------------------
[2009-08-10 15:27:03] [email protected]
I have no idea what DOMPDF_XXXX is and how it is used.
Please provide a standalone script I can use to reproduce your problem,
as well as which paths are used by the script.
"- 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."
It looks like a permission problem to me.
------------------------------------------------------------------------
[2009-07-17 16:09:18] trutas dot ctx at gmail dot com
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,
------------------------------------------------------------------------
[2009-07-17 15:34:47] [email protected]
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