PHP-无法打开流:没有这样的文件或目录-用于现有文件

PHP-无法打开流:没有这样的文件或目录-用于现有文件,php,file,Php,File,我正在编写一个PHP应用程序,我想在代码中创建图像并将其返回到浏览器。然而,有时我会得到一些奇怪的结果,因为文件似乎不存在,所以无法创建图像 下面是我得到的一条示例错误消息和简单的代码。我确实知道映像存在,但该方法有时会失败,有时会成功,即使对于同一个文件也是如此 错误: 警告:imagecreatefrompng(path/to/image.png)[function.imagecreatefrompng]:无法打开流:第301行的test.php文件中没有此类文件或目录 守则: if (fi

我正在编写一个PHP应用程序,我想在代码中创建图像并将其返回到浏览器。然而,有时我会得到一些奇怪的结果,因为文件似乎不存在,所以无法创建图像

下面是我得到的一条示例错误消息和简单的代码。我确实知道映像存在,但该方法有时会失败,有时会成功,即使对于同一个文件也是如此

错误:

警告:imagecreatefrompng(path/to/image.png)[function.imagecreatefrompng]:无法打开流:第301行的test.php文件中没有此类文件或目录

守则:

if (file_exists($filename)) {
    $image = imagecreatefrompng($filename);
}
如果有任何提示或提示,说明可能的错误以及如何改进代码以使其更稳定,我将不胜感激。

文件可能“存在”,但文件是否可访问?文件_的实际用途是什么

如果它打开文件然后关闭文件,请确保在imagecreatedfrompng启动之前,文件已实际关闭且未锁定

在返回受控错误之前,最好尝试在循环中捕获错误并尝试4或5次


也许try是可读的()还是可写的?

您考虑过检查正确的权限吗?如果文件无法读取,但目录可以读取,您将获得
file\u exists(…)=true
,但无法打开该文件的句柄。

我建议您使用

使用
is_readable()
检查您有权访问该文件的任何内容

您可以试试GD:

IF($img = @GETIMAGESIZE("testimage.gif")){ 
     ECHO "image exists"; 
}ELSE{ 
     ECHO "image does not exist"; 
} 

bro检查文件路径中是否有空格。我最近遇到了这个问题,当时我正试图从为应用程序创建的模块中包含一个文件。其他模块在调用时包括得很好,但有一个没有。原来文件路径中有一个空白。我建议你试试php
trim()
函数。如果这行得通,霍拉。

我对java一无所知。。。但当谈到文件时,我似乎遇到了这种东西,一个LOTfile_存在是一个本地PHP函数是的,我从Ruel的评论中看到了这一点。。。谢谢刚刚抛出的是可读和可写的…是的,我曾想过运行一个循环并尝试几次,因为它有时有效,但它似乎是一个丑陋的黑客:pit可能是一个“丑陋”的黑客。。。但由于对java了解不够,我无法给出更好的答案。。。在c#中,我甚至在尝试之前都会使用事件来确保文件已完成。我开始怀疑这是否与速度较慢的计算机有关,因为我在开发中的计算机上比在测试服务器上得到它的频率更高,这可能是
IF($img = @GETIMAGESIZE("testimage.gif")){ 
     ECHO "image exists"; 
}ELSE{ 
     ECHO "image does not exist"; 
}