CakePHPでフォームから画像をアップロード出来ないときのチェックポイント

フォームを作る時に単純なミスではまってしまったのでメモ。

以下の様な症状でフォームから画像がアップロード出来ない時に有効かも

ビューで
Form->file(‘file_name’); ?>と出力してフォームを設置して画像をアップロードした時、

コントローラーに渡された変数で
・$this->data[‘モデル名’][‘file_name’][‘tmp_name’]に一時ファイルのアドレスと関係ない1文字の文字列が格納されてる
・$this->data[‘モデル名’][‘file_name’]に配列でなく文字列が格納されている。

対処法
ビューのフォームタグを作る関数
$this->Form->create(‘モデル名’) を、

$this->Form->create(‘モデル名’,array(‘enctype’ => ‘multipart/form-data’));に改める

ブログテンプレート再公開しました。

ブログテンプレートのページはこちらからどうぞ

高校生時代(数年前)にFC2ブログテンプレートを作って共有化することを趣味的にやっていましたが、その際に色違い等のデザインのソースをWebサイトで配布するなんてことをやってました。
というのも、色違いをFC2に共有化させると新着テンプレート一覧が自分のテンプレートで荒らされたりして迷惑がかかる、あるいは自分のWebサイトやブログへのアクセスの誘導が出来ないなどが理由でした。

細々とまだダウンロードされてるみたいなので、そのWebサイトが旧作ではホームページZEROなんていう自由度の低いソフトで作ったWebページなので、それを更新しました。
大きな改良点としては、従来ではブログ記事にしてソースのカスタム方法を載せてたものを、Webサイトでフォームでパターンを選ぶだけでソースを自動生成出来るようにしたことです。
過去の経験上、グダグダ改良方法を載せてもその通りに使ってくれる人はそんなにいないのに対し、Webサイトでソースをコピペにすると案外使ってくれるものでしたので、いちいち読まなくても簡単な操作で出来ることはやはり大事だと思います。

iOSで背景画像が縮小表示されてしまう時の対処法

スマートフォンやタブレットは、Webサイトを閲覧するにあたってとても便利で普及が進んでますね。
実際自分もiPadでWebサイトの閲覧をよくしてますが、PCとほぼ遜色がなく、しかも手軽に使えるのでますます多くの人に使われそうですね。
ともなればWeb制作者視点から見ればそういう人達への対応が必要なわけで…w
もう時代遅れでオワコンのIE6対策よりはこっちの対策を考えたほうがいい気がしますw
専用デザインでなくても、せめて見苦しくはならないようデザインを考えていきたいところですが…
ただ自分の私物ではiOS端末しかなく、Android端末で動作確認ができないので、Androidでどう見えてるかは割りと心配です(汗

ところで、iOSは結構Web標準に準拠していて、HTMLやCSSはもちろん、javascriptもPC版のSafariに遜色無くちゃんと動いてくれて嬉しいことが多いのですが、ときどきなんでこうなったんだ?って思いたくなるような仕様にぶち当たることもあります…
今回もそれにぶち当たってしまいましたorz

サイトの背景描きあがった!と思ってiPadでどう見えるかなと気分揚々で見てみたところ、

こんな感じに、背景画像だけが全体表示されてしまいました…見苦しい…
なんとかして他のコンテンツと同じ倍率で表示させて欲しい、と調べたところ、こんな記事がありました。

iPhoneのSafariブラウザにおける、色んな制限

ここには
「GIF、PNG、TIFF画像のデコードサイズ制限は2メガピクセル。つまり、width × height ≤ 2 × 1024 × 1024 でなければいけません。」と書いてありました。
画像の大きさを確認すると、1800×1200で確かにオーバーしてしまいましたorz
自分の場合はJPEGだけど、同じ理由なのかもしれないと試してみます。
でも僅かなオーバーだから少し削るだけで良かったとひと安心w

えーっと、横を削らなかったら縦は何pxにすればいいんだろう…と、幸いにも下の方に削っても差し支えのない黒の余白があったので、そこを削って1138pxにしました(きわどい

2 × 1024 × 1024 > 1138 × 1800 ということでOKになるかなと緊張の面持ちで確認してみると…

無事ちゃんと表示されました!
これでめでたしめでたし..