php初心者です
簡単な画像アップロードを付けたいと思っています
それでアップだけはなんとかできたのですが、もう少し機能を付けたいです
付けたい機能は
1.拡張子を調べて限定したい。gif、jpg、pngの三つを許可したい
2.画像の横と縦の幅が指定した幅より大きければ、指定した幅まで縦横比維持で縮小 100*100
3.もう一つのディレクトリに、小さいサムネイルを作りたい。大きさは32*32です
4.拡張子はそのままにして画像の名前をリネームしたいです
よろしくお願いします(_ _
<?php
$img_name = $_FILES["upfile"]["name"];
$img_size = $_FILES["upfile"]["size"];
$img_type = $_FILES["upfile"]["type"];
if($_REQUEST["up"] != ""){
if($img_tmp != "" and $img_size <= 50000){
$img_message = "名前は: $img_name <br>サイズは: $img_size <br>MIMEタイプは: $img_type";
if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) {
chmod("files/" . $_FILES["upfile"]["name"], 0604);
print $_FILES["upfile"]["name"] . "をアップロードしました。";
} else {
print "ファイルをアップロードできません。";
}
} else {
print "ファイルが選択されていません。";
}
}else{
$size_error = "サイズが大きすぎます";
}
}
?>
<html>
<head>
<title>画像アップロード</title>
</head>
<body>
<form name="form" action="" method="POST" ENCTYPE="MULTIPART/FORM-DATA">
<input name="upfile" type="file" size="40">
<input name="up" type="submit" value="アップロード"><hr>
</form>
<?php print($size_error); ?><?php print($img_message); ?>
</body>
</html>
No.2
- 回答日時:
ファイル名をチェックしたり、$_FILES['upfile']['type']を見るだけでは、受け取るファイルの種類を制限するには判定が甘すぎます。
getimagesize関数やfinfoクラスを利用する必要があります。
サンプル
http://qiita.com/mpyw/items/73ee77a9535cc65eff1e
No.1
- 回答日時:
>1.拡張子を調べて限定したい。
gif、jpg、pngの三つを許可したい$_FILES["upfile"]["name"]の文字列から後ろ4文字抜き出してチェックすればよいでしょう
>2.画像の横と縦の幅が指定した幅より大きければ、指定した幅まで縦横比維持で縮小 100*100
できればPEAR::Image_Transformあたりを使うとかなり楽にできます
scaleByLength(n)を利用すると、アップしたファイルの縦横長いほうの長さを
nにリサイズできます。
http://pear.php.net/manual/ja/package.images.ima …
>3.もう一つのディレクトリに、小さいサムネイルを作りたい。大きさは32*32です
同上
>4.拡張子はそのままにして画像の名前をリネームしたいです
単純に画像名を変更するだけですね
逆に「リネームしたい」といわれてもどう名前を変えたいのか提示されていないので
どうしようもないですね。
日時(マイクロ秒)を利用したり、テンポラリの名前をそのまま利用したり好きに
すればいいでしょう。
なおリネームというよりは、テンポラリファイルを所定のフォルダに名称をつけて
コピー(移動?)をするというのが正しいかもしれません。
http://www.php.net/manual/ja/function.move-uploa …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 画像が表示出来ません。 1 2023/02/02 16:30
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
記述のおかしいところを教えて...
-
postgresからの配列を変数に
-
プログラミングC++のmapについて
-
UPDATEできない
-
VBA で、スペースを含むファイ...
-
プログラミング言語で、使える...
-
phpで分からないエラーが出てし...
-
リンク先のフォームに自動的に...
-
セッションを使わずに遷移先画...
-
変数が表示されない。
-
HTMLのリンクをクリックするこ...
-
HTMLで前の画面に戻る時、入力...
-
phpでの複数選択チェックボック...
-
チェックボックスによる検索
-
アマゾンのような評価の星を選...
-
画面が更新されてもチェックボ...
-
ラジオボタンをsessionで使いたい
-
現在ラジオボタンのデータベー...
-
PHPのエラーの解消法について教...
-
PHP で画面の一部だけを変えたい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
重複を防ぐ記述について教えて...
-
VBA で、スペースを含むファイ...
-
PHPで入力フォームでデータを確...
-
Flaskでサーバー立ち上げに関して
-
phpで変数を使ってcopyできない
-
PHPからHTMLへの変数の受け...
-
ファイル名を変更してアップロ...
-
$_SESSIONに渡した後はそのまま...
-
テキストボックスの値を取得したい
-
openCVのトラックバーについて
-
scanfでの読み込み文字数制限
-
PHP MySql 画像を取得
-
アップロードファイル名の文字化け
-
Fortranでのファイル名操作につ...
-
ポインタ配列をfscanfで読み込...
-
WordのIDataObject::GetData呼...
-
UPDATEできない
-
C# 同じ処理をまとめたい
-
イタリア人がCatherineと聞いた...
-
mySQLのデータを多次元配列に格...
おすすめ情報