php imagejpeg 失败,php – imagejpeg()无法打开写入 – 有时它可以工作,有时不工作

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

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)和if file是否写入($destination).即使出现警告错误,两个检查都会返回TRUE.

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

谁能帮我?

我正在使用操作系统Windows 8的PC上工作 – 我使用的是IIS 8和PHP 5.3.3.

最佳答案 PHP有一个用于使用路径的内部缓存,当你创建文件时,可能是缓存过时而PHP抛出错误,即使文件存在(稍后几毫秒)……

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

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

clearstatcache();

imagejpeg ($destination_res, $destination, 100);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值