php - asd.jpg 不是有效的 JPEG 文件 - Scandir PHP

标签 php jpeg libjpeg scandir

我有一个软件,每分钟上传一个 jpeg 到 FTP 帐户。

在 PHP 中,我在 crontab 中编写了一些 PHP 代码,用于获取最后一个 JPEG 文件并执行图形处理。这工作正常。

$all_files = scandir("./dir/dir",1);
$last_files = $all_files[0]; //take last jpeg
..etc..

问题是有时 crontab 中的 PHP 代码会获取一个仍在通过 FTP 写入的文件(因此它是不完整的)并生成此错误:

[01-Jun-2016 15:30:05 Europe/Rome] PHP Warning:  imagecreatefromjpeg(): gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file in /home/asdasd/public_html/www.asdasdasdasd.com/asd/asd/cron.php on line 15
[01-Jun-2016 15:30:05 Europe/Rome] PHP Warning:  imagecreatefromjpeg(): './dir/dir/153000.jpg' is not a valid JPEG file in /home/asdasd/public_html/www.asdasdasdasd.com/asd/asd/cron.php on line 15
[01-Jun-2016 15:30:05 Europe/Rome] PHP Warning:  imagecopyresampled() expects parameter 2 to be resource, boolean given in /home/asdasd/public_html/www.asdasdasdasd.com/asd/asd/cron.php on line 17

我如何添加对 scandir 的检查以捕获最后一个完整的文件而不是被写入?

最佳答案

您可以在处理之前检查 JPEG 文件是否有效 (cron.php):

if(exif_imagetype($filepath) != IMAGETYPE_JPEG){
    // Exit the script
    exit;
}

// Your image processing code goes here...

http://php.net/manual/en/function.exif-imagetype.php

关于php - asd.jpg 不是有效的 JPEG 文件 - Scandir PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37570625/

相关文章:

php - 使用 AJAX 调用和 JSON 数据填充表单

php - 全新安装 symfony 时出错

ruby-on-rails - 提供静态资源(如 .jpgs 等?)

python - 如何在 OSX 上安装 libjpeg?

performance - 如何加快libjpeg解压速度

php - Twig 中 escape ('html' ) 和 escape ('html_attr' ) 的区别

php - 这个带有插入符号的 PHP 语法是什么,它有什么作用?

jquery - 在 html 页面中,文件 uploader 只接受 png

python - 使用 imageio.readvol() 从文件夹中读取所有图像(jpg)

c - libjpeg 解压缩到 RAW 不工作