使用 imagecreatefromjpeg() 處理某些 JPEG 檔案時,會出現 Warning: gd-jpeg, libjpeg: recoverable error: Invalid SOS parameters for sequential JPEG 導致縮略圖生成失敗。本文提供最簡單的解決方法。
Warning: imagecreatefromjpeg(): gd-jpeg, libjpeg: recoverable error: Invalid SOS parameters for sequential JPEG
部分 JPEG 檔案不完全符合標準規範(如 SOS 參數無效),但 GD 預設嚴格模式會拋出警告並中斷處理。
// 方法一:執行期設定(推薦放在腳本最開頭)
ini_set('gd.jpeg_ignore_warning', true);
或修改 php.ini 永久生效:
gd.jpeg_ignore_warning = On
gd.jpeg_ignore_warning 參數(PHP 5.6+ / PHP 7+ 可用)指示 GD 庫在遇到可恢復的 JPEG 解碼錯誤時**忽略警告並嘗試繼續處理**,而非直接失敗。
一行配置徹底解決 GD 處理非標準 JPEG 失效問題,建議專案統一啟用。