2013-02-06 18 views
6

codeigniterを使用して画像のサムを作成しようとしています。私は成功しました。しかし、私は成功していないいくつかの画像です。私はこのエラーが発生しています。Codeigniter内の "gd-jpeg、libjpeg:回復可能なエラー:JPEGファイルの早すぎる終了"

<< A PHP Error was encountered 
Severity: Notice 

Message: imagecreatefromjpeg(): gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file 

Filename: libraries/Image_lib.php 

Line Number: 1155 >> 

「image_lib」ライブラリの読み込み後にこのコードを使用しました。

ini_set('gd.jpeg_ignore_warning', 1); 

その後、いくつかの画像サムの作成は成功しました...しかし、まだいくつかの解決策はありません....どのような解決策ですか?

+0

は、私は私のコードを追加した – user20232359723568423357842364

+0

あなたのコードを貼り付け、エラー抑制因子であるが、それでも私は取得します警告。 – rafi

+0

どのバージョンのCIを使用していますか? – user20232359723568423357842364

答えて

3

問題がerror suppressionが最良の選択肢は、基本ライブラリを拡張することで機能するためにimagecreatefromjpeg

をオンにしてimage_create_gd方法

新しいファイルを作成します./application/libraries/MY_Image_lib.php

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

Class MY_Image_lib extends CI_Image_Lib { 

function image_create_gd($path = '', $image_type = '') 
{ 
    if ($path == '') 
     $path = $this->full_src_path; 

    if ($image_type == '') 
     $image_type = $this->image_type; 


    switch ($image_type) 
    { 
     case  1 : 
        if (! function_exists('imagecreatefromgif')) 
        { 
         $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_gif_not_supported')); 
         return FALSE; 
        } 

        return @imagecreatefromgif($path); 
      break; 
     case 2 : 
        if (! function_exists('imagecreatefromjpeg')) 
        { 
         $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_jpg_not_supported')); 
         return FALSE; 
        } 

        return @imagecreatefromjpeg($path); 
      break; 
     case 3 : 
        if (! function_exists('imagecreatefrompng')) 
        { 
         $this->set_error(array('imglib_unsupported_imagecreate', 'imglib_png_not_supported')); 
         return FALSE; 
        } 

        return @imagecreatefrompng($path); 
      break; 

    } 

    $this->set_error(array('imglib_unsupported_imagecreate')); 
    return FALSE; 
} 

} 
+0

私は間違いなく@エラー抑制を追加することをお勧めしません...ここで私の答えをチェックアウト:https:// stackoverflow。com/questions/1032161/phpの使用方法/ 36892995#36892995 – Andreas

2
をオーバーロードされていないということです

私はまったく同じ問題を抱えていました。私は最初に画像データをローカルHDDに保存してから、imagecreatefromjpeg()を使用して画像をさらに後処理しました。

ローカルの保存されたイメージがストアプロセス中に破損し、imagecreatefromjpeg($ imagePath)によって呼び出されました。 PHPの警告:imagecreatefromjpeg():gd-jpeg、libjpeg:回復可能なエラー:JPEGファイルの早すぎる終了が発生しました。が表示されました。

だから、

PHPの警告を解決するために、私は見PHPマニュアル(http://php.net/manual/en/function.imagecreatefromjpeg.php)で明確に定義されたソリューションを使用し、破損した画像を補うために機能LoadJpeg($のimgname)

さらに障害を防止するために、私はimagecreatefromjpeg()関数に供給されたデータが最初に無関係だった理由に焦点を当てました。私の場合は、一部の画像が破損して到着したのはネットワークの洪水の問題でした。

かいつまんで、あなたは...基本ライブラリなどを拡張しようとする前に、正確にimagecreatefromjpeg()関数に供給されている内容を確認したい場合があり

2

てみ@imagecreatefromjpeg($のIMG)を追加する代わりにimagecreatefromjpegの($のIMG)ここ

は@ ........私はまた、親指は今首尾よく作成していることに今気づいた

関連する問題