2011-08-14 6 views
1

画像操作クラスを使用して画像のサムネイルを作成しようとしています。ここに私の関連するメソッドです:スクリプトを実行するとCodeIgniterで画像サムネイルを作成する際の問題

public function create_thumbnail($source_img, $name, $file_ext) 
{ 
    $config['image_library'] = 'gd2'; 
    $config['source_image'] = $source_img; 
    $config['create_thumb'] = TRUE; 
    $config['maintain_ratio'] = TRUE; 
    $config['width'] = 50; 
    $config['new_image'] = 'C:\xampp\htdocs\\' . $name . 't' . $file_ext; 

    $this->load->library('image_lib', $config); 
    if(!$this->image_lib->resize()) 
    { 
     echo $this->image_lib->display_errors();exit; 
    } 
    return TRUE; 
} 

が、私はこのエラーを取得する:

Unable to save the image. Please make sure the image and file directory are writable. 

配列要素$config['new_image']は次のようなものと評価されますC:\xampp\htdocs\EuzIDct.jpgので、私はそれがないと知っています。ソースファイルは、メソッドが呼び出された時点でも存在するので、どちらでもありません。

ここで何が起こっているのか誰かが知りませんか?私はGoogleが問題にしたが、CIフォーラムのソリューションは、絶対パスと相対パスを指定すると言っている。これは私がやっていることだが、うまくいけない。

ありがとうございます!

+0

Windows、Mac、Linuxのどちらですか? –

+0

Windowsでは '' C:\ xampp \ htdocs \\ ''と思ってしまいました。 – Josh

+0

私の悪いです。そのファイルは読み取り専用ですか?右クリックしてプロパティを確認してください... –

答えて

0

まず、ファイルパス内の余分なバックスラッシュを削除してみてください。

C:\xampp\htdocs\ 

次に、右クリックして、そのディレクトリのファイルアクセス許可を確認します。

これに失敗した場合は、他の権限の問題であるかどうかを確認するために、xamppサーバーを短期修正として管理者として実行してください。

0

権限の問題が発生している可能性があります。フォルダのアクセス許可を変更しようとします。 image_lib-> resize()の方法は間違っていませんが、別の方法で画像のサイズを変更することはお勧めできません。通常、777のアクセス許可は、セキュリティに関してアプリケーションを公開します。 私はcodeigniter image_libの代わりにサムネイルを移動するためにFTPを使うことをお勧めします。 まだ書き込み権限を主張している場合は、C:\ xampp \ htdocs \ - > proprieties、タブセキュリティ、編集、すべてのユーザーを追加してフルアクセス(ウィンドウ)を与えてください。 Linux-Macの場合、単純なchmod -R 777.

0

これまでにこの問題がありました。私の場合は、base_urlまたはREAL_PATHを使わずにイメージソースとnew_imageを配置します。

public function create_thumbnail($file_name='2012_02_23_15_06_00_1.jpg'){ 
    $config['image_library'] = 'gd2'; 
    $config['source_image'] = 'assets/img/content/article/'.$file_name; 
    $config['create_thumb'] = FALSE; 
    $config['maintain_ratio'] = TRUE; 
    $config['width'] = 210; 
    $config['height'] = 160;  
    $config['new_image'] = 'assets/img/content/article/thumb/thumb_' . $file_name; 

    $this->load->library('image_lib', $config); 
    if(!$this->image_lib->resize()) 
    { 
     echo $this->image_lib->display_errors();exit; 
    } 
    return TRUE; 
} 

参照してください。あなたがbase_url()を使用して

しかし

$config['new_image'] = 'assets/img/content/article/thumb/thumb_' . $file_name; 

を入れていない 、あなたやあなたのimage_source new_imageのいずれかが接頭辞http://domain_or_localhostを持つことになります。 C://htdocs/blablabla/ようREAL_PATHを使用して

はちょうどあなたの新しいイメージのパスが間違っているために起こっている

0

などなど、など、書き込み不可として物事を複雑にしています。 イメージをルートディレクトリに保存します。 $ config ['new_image'] = '/フォルダ名/ new_image.jpg';

関連する問題