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