我在这里使用ImageManipulator.php库:https://gist.github.com/philBrown/880506
上传部分图片时,出现以下错误:
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'Image file C:\inetpub\wwwroot is not readable' in C:\inetpub\wwwroot\libraries\image-library.php:62 Stack trace: #0 C:\inetpub\wwwroot\images\edit-image.php(55): ImageManipulator->setImageFile('C:\inetpub\wwwr...') #1 .{main} thrown in C:\inetpub\wwwroot\libraries\image-library.php on line 62
引用的函数是:
if (!(is_readable($file) && is_file($file))) {
throw new InvalidArgumentException("Image file $file is not readable");
}
随着图像的随机选择会发生这种情况,但如果发生这种情况,则会继续发生该图像,因此并非完全随机。如果我在Paint中打开图像并使用不同的名称保存它,它就可以工作。它与图像大小无关,因为我的图像只有14 kb时出现此错误。
有没有人知道出了什么问题?
例如:
上面的图片不起作用,但下面的图片不起作用。
答案 0 :(得分:0)
感谢您的帮助,指出了我正确的方向。事实证明,所有失败的文件都有大写字母扩展名(.JPG)和有效的文件都有小写扩展名(.jpg)。每当我在paint中编辑一个文件时,它都会用小写扩展名保存它。在代码的某处,我使用数组筛选可接受的扩展,并且数组仅包含小写扩展。我在比较中添加了strtolower
,它似乎正在工作。解决方案:
// array of valid extensions
$validExtensions = array('.jpg', '.jpeg', '.gif', '.png');
// get extension of the uploaded file
$fileExtension = strtolower(strrchr($_FILES['fileToUpload']['name'], "."));
^^^^^^^^^