ID: 48959 Updated by: paj...@php.net Reported By: trutas dot ctx at gmail dot com -Status: Assigned +Status: Feedback Bug Type: Filesystem function related Operating System: win32 - Windows Server 2003 x64 PHP Version: 5.3.0 Assigned To: pajoye New Comment:
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. Previous Comments: ------------------------------------------------------------------------ [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] 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