![]() PHPで画像のアップロード(さくらレンタルサーバーのPHPでImageMagick)名前: 小川 邦久 リンク: https://kunisan.jp 日付: 2018年10月22日 ![]() ![]() ただ、本ブログで複数画像をアップするような場合、ページ右上の画像だけは書き込み画面からアップできるのですが、他の画像はFTPを介してしかアップすることができませんでした。画像を表示するためのHTMLも、テキストファイルに記載した「HTMLひな形」の一部を変えつつ、ブログ記事編集ページ(管理者専用)にコピペしながら表示するようなことをしていました。この作業はスマートフォンやタブレットでは少々厳しいため、ブログ記事のアップは基本的に家でパソコンを使ってやるしかありませんでした。 今後はスマートフォンやタブレットからもブログ記事をアップできるようにしたいと思い、新たなファイルアップロード用のプログラムを作ることにしました。ただ、今更Perlでプログラムを作りたくないということもあり、PHPで制作することにしてみました。 久しぶりにPHPでプログラムを書きましたが、やはり数年前によく使ったこともあってか、ネット情報を参考にしながら、昨日と今日と2日間だけで作業が完了しました。せっかくなので、プログラムを一部公開したいと思います(まあ、世に出回っている情報ではありますが)。 まずは画像のアップロードです。核となる部分だけ抜粋しましたが、これだけで動きます。 ■ HTML(ファイルを選択してアップロード) <form action="upload_image.php" method="post" enctype="multipart/form-data"> ■ PHP(アップロードされた画像ファイルをWebサーバーに保存) <?php ただ、さくらのレンタルサーバー(スタンダード)でこれを動作させると、2MB位までのファイルしかアップロードできません。スマートフォンの写真でも10MB近くになることもあり、これでは十分とは言えません。さくらインターネットのサーバーコントロールパネルから、PHP設定の編集を開き、以下のような設定を追加します。 ■ php.ini(POST送信の最大容量とアップロードファイルの最大サイズを設定) post_max_size = 20M upload_max_filesize = 20M なお、メモリ上限の設定(例: memory_limit = 128M)も可能ですが、こちらは最初から十分にあるようなので特に設定をしなくても大丈夫でした。 これで画像ファイルのアップロードまではできますが、オリジナルの写真のままでは画像サイズが大きすぎてしまい、Webページ表示用としては適していません。続いて、アップロードした画像をリサイズ(縮小)するプログラムです。 ■ PHP(画像サイズ変更 GDでリサイズ) <?php これで動くことは動くのですが、リサイズ後の画像の劣化やギザギザが目につきます。そこで、リサイズの部分は比較的画像の劣化が少ないImageMagickモジュールを使用することにしました。 さくらのレンタルサーバー(スタンダード)では、デフォルトではImageMagickが使用できないものの、php.iniに一行加えるだけで使用できるようになります。 ■ php.ini(ImageMagickを設定) extension = imagick.so ■ PHP(画像サイズ変更 ImageMagickでリサイズ) <?php 一連の流れで、画像のアップロードからリサイズまでできるようになりました。ブログ記事編集ページ(管理者専用)には、この他にも細かい機能を付けて、スマートフォンやタブレットでも複数画像を使った記事をアップできるようになりました。まあ、大手のサービスではとっくにやっていることではありますが、これを手作りで構築すること自体が楽しいということで…。 Web管理関連記事(リンク一覧): さくらレンタルサーバーのアクセス履歴をPHPで表示 / PHPで画像のアップロード(さくらレンタルサーバーのPHPでImageMagick) / KUNISAN.JPサイトのメンテナンス(2019) / Webサーバー引っ越し(さくらインターネット スタンダード)とHTTPS(常時SSL)化 / Googleマップの有料化(ディベロッパー向け) → Google Cloud Platform / ...(記事連続表示) 関連カテゴリー: PHP関連記事, Web管理関連記事
![]() 最近の記事: Sensaphonics Prophonic 2XS(イヤモニ)のリケーブル / 色々な国の料理を楽しむ第5弾 - モンゴル料理ウランバートル(両国) / フルーツ好きのアルパカさん - プチコン4で物理演算系ジャンプアクションゲーム / TOEIC L&R TEST 出る単特急金のフレーズとYouGlish / 8か月ぶりのTOEIC L&R(オンラインIP)と今後の対策 / 2023年人間ドックの結果(視力低下と高尿酸値) / ベルーナドーム(西武ドーム)で西武x日ハム戦 / DOTOWN画像一覧表 ミニゲーム付き (プチコン4) / 一泊二日の小豆島旅行 / 白馬スノーハープクロスカントリー大会2023&馬籠
■ ホームへ
|