LoginSignup
12
11

More than 5 years have passed since last update.

cakephpで画像アップロード:UploadPack導入とハマったところ

Last updated at Posted at 2014-11-09

cakeの画像アップロードプラグイン

cakeで画像アップ機能を入れる場合、
プラグインが断然便利らしい

調べたところ、
・Upload
・UploadPack
あたりが手軽でよさそう。

参考:http://hideharaaws.hatenablog.com/entry/2013/12/27/163403

UploadPackの方がヘルパーも含まれている上に、
カラム1行追加で導入できるってことで、君に決めた!

※ちなみに私の環境はこちら
 cakephp2.5.4
 CentOS-6.5-x86_64

UploadPackプラグインの導入

シンプルに紹介してくれている記事があるので、基本沿うだけ
http://blog.livedoor.jp/spyder_5615/archives/25844290.html

【CentOSに直接ダウンロードするときメモ】
任意のフォルダに移動してwgetでダウンロード
wget https://github.com/szajbus/uploadpack/archive/master.zip
unzip master.zip
cp -r uploadpack-master /var/www/html/(サービス名)/app/Plugin/uploadpack
解凍して、uploadpackとフォルダ名を変え、Plugin直下にコピー

wgetやunzipが入ってなければ
sudo yum install wget
sudo yum install unzip
でインストールしてしまいましょー

ここまでやれば、ブログ同様にbootstrap.phpでロードすればOK
このまま無事に完了できる・・はずだった・・

ハマりポイント:画像がアップされない!!

ブログ記事より

【アップロードをやってみる】
完成した登録フォームから画像アップロードしてみる。
アップロード後に、app/webroot の下に
uploadっていうフォルダが出来ているはずです。

で・・できない・・なぜw
エラーも出ず、DBにはしっかりパスが入っているのだけど画像アップだけ無視。

調べてみると、
・php.iniの設定のせい(http://futuremix.org/2008/08/php-file-upload-problem)
・パーミッションのせい
大体そのへんらしい

私の場合はphp.ini確認したけど問題なかったので、どうやらパーミッション
ググって出てきたwordpressで画像アップできないって記事によると、
画像がアップされるフォルダは全部757にしろ!という指示があったので、
webrootのパーミッションを757に変更してみた

sudo chmod 757 app/webroot
ls app/ -l

drwxr-xrwx 7 vagrant vagrant 4096 Nov 8 08:08 webroot

変更後、もう一度画像アップを試してみるとエラーが出た!

Error: Call to undefined function imagecreatefromjpeg()
File: /var/www/html/seedpod/app/Plugin/UploadPack/Model/Behavior/UploadBehavior.php 
Line: 269

ぬぬ?なにゃこれ
ググってみると解決策を発見!
http://ameblo.jp/vermillion71717/entry-10832449228.html
画像を操作するphp-gdなるものが必要らしい

コマンドとしてはこの2つ
$ sudo yum -y install php-gd
$ sudo /etc/init.d/httpd restart

もう一度画像アップをしてみる
エラーでない!!そしてフォルダできてるーーー!!!わーい/

無事解決しました!なにか問題ありそうだったらご指摘もらえると嬉しいです〜

追記:helperによる出力方法

おそらくバージョンの問題だと思いますが、わたしの環境では記述されているものと異なっていました。
 × $this->Upload->image($user, User.img);
 ○ $this->Upload->uploadImage($user, User.img);

この記載方法がなかなか見つからなかったので少しハマりました。
ご参考までに!

12
11
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11