gpt4 book ai didi

php - imagejpeg() 无法打开进行写入 - 有时有效,有时无效

转载 作者:可可西里 更新时间:2023-10-31 23:32:27 26 4
gpt4 key购买 nike

我尝试通过以下代码将图像资源保存为图像:

imagejpeg ($destination_res, $destination, 100);

该脚本还包含一个有效的文件上传(文件始终存在于目标文件夹中)- 上传此文件后,我想将此文件用于 imagejpeg()。问题是有时我的代码确实有效,有时却无效。如果无法正常工作,我会收到以下 PHP 错误:

Warning: imagejpeg(): Unable to open [path] for writing: Invalid argument in script on line xy

我猜是复制过程有问题——可能是文件上传后的复制过程还没有完全完成,所以是不可写的。

但我也尝试在 imagejpeg() 命令之前检查 file_exists($destination) 和文件 is_writable($destination) 是否存在.即使出现警告错误,这两项检查也会返回 TRUE

如果我在文件上传和 imagejpeg() 之间放置一个 sleep(2),就会减少错误发生。 sleep 持续的时间越长,发生的错误就越少。

谁能帮帮我?

我在我的 PC 上使用操作系统 Windows 8 - 我使用 IIS 8PHP 5.3.3

最佳答案

PHP 有一个用于使用路径的内部缓存,当您创建文件时,缓存可能会过时并且 PHP 会抛出错误,即使文件在那里(几毫秒后)......

为避免创建的文件在实时使用中无法找到的问题 clearstatcache() .它重置路径的内部 PHP 缓存。

在创建文件之后、访问创建的文件之前调用 clearstatcache()

clearstatcache();
imagejpeg ($destination_res, $destination, 100);

关于php - imagejpeg() 无法打开进行写入 - 有时有效,有时无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14820031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com