PHP+MYSQLをつかって画像UP掲示板をつくっています。一覧ページにて投稿された画像をIMGタグで縮小しているのですが、転送量を減らす為もう一つ小さいサムネイルを作りたいと思っております。色々試してみたのですが初心者の為うまくいきません。
もしご存知の方がいらしゃいましたらヒントだけでも教えていただけないでしょうか。よろしくお願いいたします。
// 新規投稿された時の処理
if($_POST["q"] == '新規追加')
{
省略
// エラーチェック
switch ($_FILES["画像"]["error"])
{
case UPLOAD_ERR_INI_SIZE:
case UPLOAD_ERR_FORM_SIZE:
error("サイズ制限を超えています。");
case UPLOAD_ERR_PARTIAL:
case UPLOAD_ERR_NO_FILE:
error("エラー");
}
// ファイルサイズを再チェック
if($_FILES["画像"]["size"] > 1024 * 100)
{
error("エラー");
}
// gifとjpeg以外のファイルを拒否
if(!preg_match("/^image\/.*(gif|jpeg)$/i", $_FILES["画像"]["type"]))
{
error("エラー");
}
// 特定の文字以外の文字を使用したファイル名を拒否
if(preg_match("/[^\w\d\-\.]/", $_FILES["画像"]["name"]))
{
error("エラー");
}
// ファイルを移動
$ext = substr($_FILES["画像"]["name"],-4);
$mictime = microtime();
$imagefile = substr($mictime, 11) . substr($mictime, 2, 6) . "$ext";
$upload_file = UPLOAD_DIR . $imagefile;
if(move_uploaded_file($_FILES["画像"]["tmp_name"], $upload_file))
{
chmod($upload_file, 0644);
}
省略
No.3ベストアンサー
- 回答日時:
ご質問でおっしゃられている掲示板、もしかしてどこかから拾ってきたPHPプログラムでやっていませんか?
MYSQLとPHPでやりとりできるプログラミングをご自分で書ける程度の知識があれば、全然簡単なはずですが・・・。
マニュアルに色々載っていますがご覧になられているでしょうか。
http://www.php.net/manual/ja/function.copy.php
http://www.php.net/manual/ja/features.file-uploa …
をまずご覧ください。
で、画像の加工に関しては、
http://www.php.net/manual/ja/ref.image.php
こちらをご覧ください。
注意すべき事は、画像を加工する場合その画像がBMPなのかJPEGなのかGIFなのかPNGなのかうまく判断しないと思った通りの結果は得にくいでしょう。
この辺は、覚えていくに従ってわかると思うのでがんばってください。そんな難しくないです。
あとは、前回紹介した
http://tsuttayo.sytes.net/php/gd/
こちらにほぼ御希望の処理が書かれていますので。
campanella_77さん
最後返信ありがとうございます。
教えていただいた順番に勉強していきたいと思います。
スクリプトは拾ってきたと言うより参考書を買ってサンプルをコピペ&コピペで合体させました。
ご親切にありがとうございました。
No.2
- 回答日時:
こんちは。
レンタルサーバなんかを使ってたりすると、GDライブラリが使えなかったりしますんであくまで参考に。
こちらに御希望に添った説明・処理が載っているかと。
http://tsuttayo.sytes.net/php/gd/
GDライブラリが使えない場合は・・・。
ま、使えなくてもPHPで加工できます。ただし、GIFやJPEGのフォーマットや、PHPのビット演算子等の使い方がわからないとにっちもさっちもいかないでしょう。
一応、GIFのフォーマットを。
http://www.tohoho-web.com/wwwgif.htm
PHPのGDライブラリは使ってみるとわかるのですが、ひじょ~に遅いのでどこかでCなどで書かれたプログラムを拾ってきて、そちらに処理させる。っていう方法もあります。
※ブロードバンドが普及した今となっては、あんまり転送量は気にしなくていいでしょう。
それよりは処理能力を気にした方がよいと思います。
投稿数がめちゃめちゃ多いなら、そのまま。投稿数が少なければ、GDライブラリを使って。
という感じでよいと思いますよ。
campanella_77さん ご返信ありがとうございます。
私の説明不足の為、ご迷惑をお掛けいたします。
恥ずかしながらGDの処理をする前に一つの投稿から画像を2つ作る事ができません。ひょっとして画像を2つも作る事は無理なんでしょうか?
No.1
- 回答日時:
画像そのものをリサイズしたいなら、イメージ関数を使う他ありません。
ただ、PHPがGDライブラリに対応していないと使えません。使えたら、↓みたいに使う。
$bitmap=imagecreatefromjpeg($imagefile);
$thumbnail=imagecreatetruecolor(64,64);
imagecopyresampled($thumbnail,$bitmap,0,0,0,0,64,64,256,256);
imagepng($thumbnail,"thumbnail.png");
imagedestroy($thumbnail);
うーん。どんなもんでしょう。
ちなみにJPEGの拡張子は、普通「.jpg」ですよ。「gif|jpg|jpeg」ってした方がいいんじゃない?
参考URL:http://oshiete1.goo.ne.jp/kotaeru.php3?q=985978
randmanさん ご返信ありがとうございます。
すこし説明不足でしたが、2つ画像を作る処理で悩んでいます。教えて頂いたサムネイルの処理を使う前に
もう一つの画像をSQLにいれる事ができません。
このヒントを・・・と思ったのですが、本当に申し訳ございません。
「gif|jpg|jpeg」に変更します。ご丁寧にありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP $filePath = './user_img/' . $file['name'];? 1 2022/12/10 07:29
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- PHP 画像が表示出来ません。 1 2023/02/02 16:30
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
透過PNGが透過されない!!
-
C# Excelファイルへの画像挿入。
-
VBSの「MsgBox」について
-
SQLiteに画像を格納したい
-
BLOBデーターの画像の表示方法...
-
画像ファイル pngのメリットを...
-
ckfinderの画像のアップロード先
-
PHPで吐き出した画像にリンクを...
-
再投稿です。初MacでPythonの勉...
-
PostgreSQLのラージオブジェク...
-
【PHP】画像が表示されず「×」...
-
どの画像がクリックされたかフ...
-
IPアドレス別に表示する画像を...
-
<img src="http://x.y.com/cgi-...
-
iphoneで虫眼鏡の作り方
-
画像表示システムをつくりたい...
-
libpngでpng操作がうまくいかない
-
php,mysqlにて画像パス保存/表...
-
phpで画像を縮小して表示するこ...
-
スマートフォンから画像のアッ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSの「MsgBox」について
-
VBAでJPGサイズ変更
-
拡張子php画像をjpg画像等に変...
-
透過PNGが透過されない!!
-
SQLiteに画像を格納したい
-
アップロード画像数でCSSを分け...
-
PythonのTkinter詳しい方へ。画...
-
ビットマップ画像を読み込むプ...
-
Illustratorで文字と画像を流し...
-
C# Excelファイルへの画像挿入。
-
php,mysqlにて画像パス保存/表...
-
pictureboxに表示した画像のフ...
-
OpenGLで描いて画像ファイル出力
-
ListViewコントロールでサムネ...
-
BLOBデーターの画像の表示方法...
-
「imagejpeg」(GD)で作成した...
-
【PHP】画像が表示されず「×」...
-
PHP MySQLに画像を直接保存
-
GDを使って画像の背景を透過さ...
-
★PHP★画像アップロードの際に余...
おすすめ情報