Webサーバ側に「upload_max_filesize」という設定値があって、通常、この容量を超えるファイル(画像も)はアップロードできない。しかし、今どきデジカメの性能も向上していて生の画像をアップすると、余裕でこの容量を超えてしまう。なので、Wordpressに画像をアップロードする前にお客様で画像をリサイズしていただいて、それからアップロードしていただくしかない。これでは、面倒だし、リサイズのソフトが必要だし、操作も習得していただくこととなり、使い勝手としては最悪だ!
安直な対応として「upload_max_filesize」を上げるか、無限に設定する等の方法もあるが、これだと、BOTや悪意のあるアクセス者に対して、PHPのWebアプリに無駄なリソースをあててしまうことになる。もしくは、ディレクティブに管理画面(/wp-adminディレクトリ以下)だけ「upload_max_filesize」を上げてもよいが管理が面倒だし、どこかに不具合やセキュリティ的な穴がでそうで怖い。
そこで便利なプラグインが「Resize images before upload」だった。
このプラグインはクライアント(PC)側でリサイズして、それをサーバ側にアップロードしてくれます。
筆者も詳しく仕組みをわかっていないんですが、Wordpressのアップロードで使用されているJavaScriptの「Plupload」ライブラリに下記のような機能があって、これにパラメータを渡して機能させてくれるというスグレものです。JPEGにしか対応してないけど、写真といえばJPEGだし、十分な効果が期待できます。
http://www.plupload.com/docs/Image-Resizing-on-Client-Side
しかし、残念なことに、Wordpress3.8では「Plupload v1.5.7」だったものが、 WordPress 3.9で「Plupload v2.1.1(?)」にアップされ、パラメータの渡し方が変わったのか、この「Resize images before upload」が機能してくれません。
重い腰を上げて、PluploadまわりのWordpress v3.9.X フィルターフックを調べて、正しくパラメータが渡るように自作プラグインを作ろうとした矢先。すでに「ありました!」。そういうプラグイン。その名も「Client Side Image Resize」しかも、リリースされたのが、2014-5-2 で出来たてホヤホヤです。
さっそく、ダウンロードしてソースを眺めると、基本的にパラメータを渡すだけのことであることから「Resize images before upload」とほぼ同様なロジックでした。安心して使えそうです。このようなプラグインを作っていただきAuthorの「llvasconcellos」さんには感謝です。ありがとうございます。
自作プラグイン作成に入る前に気づいてよかったです。あまりに嬉しかったので、皆様にご紹介します。
しかし、Wordpress 3.9の影響は他にもあり大きかったです。「Client Side Image Resize」のおかげで1つクリアです! そういえば、今日、Wordpress 3.9対応の「AddQuicktag」がようやく出ました! もう1つクリアです!
※なお、このソフトの使用および上記の記事内容に関しては、すべて自己責任でご判断をお願い致します。