MB-Support

パソコン初心者のサポートページ

9.ファイル転送用フィールドの作成 file

 送信するファイルのアドレスを入力する特殊なフィールドです。 画像が投稿可能な掲示板などで利用されます。


入力した文章を転送するのでは無く、画像やワードなどのファイルを転送したい場合は inputfile を指定します。



・ソース

<input type="file" name="pic" size="40">

・実際の表示

実際には、送信する情報を入力するフィールド(テキストやプルダウン形式のメニューなど)と一緒に <form></form> で囲む必要があるので、ソースは以下の様になります。

・ソース

<form method="URL" action="POST" enctype="multipart/form-data">
<input type="hidden" name="max_file_size" value="容量">
画像:<input type="file" name="pic" size="40">
</form>

・実際の表示



inputfile を指定すると、入力フィールドの右に「参照」ボタンが表示されます。 クライアントがこのボタンを左クリックすると、ファイルの選択プロパティが表示されます。



ファイルの容量

<input type="hidden" name="max_file_size" value="容量">

ファイル転送用のフィールドを作成した場合、フィールドよりも上に typehiddennamemax_file_sizevalue に ファイルサイズを入力したフィールドを設置します。

typehidden を指定すると、機能はするものの、ホームページ上では表示されません。 ただし、ソースを参照すると閲覧可能なので、セキュリティ的に意味は無く、邪魔、必要がないから表示しないという発想です。

name に指定した max_file_size は、ファイルの転送を許可するファイルサイズが記述されたフィールドである事を意味します。

value に指定する物は、ファイルの転送を許可するファイルサイズです。ファイルサイズはバイト数で指定します。1024バイトは1キロバイト。1024キロバイトは、1メガバイトになります。 1MBのファイルの転送を許可させるには、1024×1024 = 1048576となります。 ここで指定した最大バイト数は絶対的に制御できる物では無く、転送するプログラムにより異なりますし、クライアントが欺く事も可能です。 PHP ではphp.iniで最大アップロードサイズを指定します。

; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files
(will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M 

インストール初期状態では 2MB に設定されているので、type="hidden"value に 2MBを越える容量を指定しても、アップロードができない事になります。 もちろん、php.ini の upload_max_filesize を変更すれば可能です。



ファイルの受け取りを確認する

このページではフォームの作り方なので、実際にファイルを受け取るにはプログラムが必要になります。単純なPHPのプログラムでファイルがアップロードされているか確認してみましょう。

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<title>test</title>
</head>
<body>

<form method="URL" action="POST" enctype="multipart/form-data">
<input type="hidden" name="max_file_size" value="800000">
画像:<input type="file" name="pic" size="40">
</form>

<?php
//受け取り側の一時ファイル
$gazou = $_FILES['pic']['tmp_name'];
//ファイルのタイプ
$type = $_FILES['pic']['type'];
print ("受け取り側の一時ファイル<br />\n[ $gazou ]<br />\n");
print ("ファイルのタイプ<br />\n[ $type ]<br />\n");
?>

</body>
</html>


メモ帳で上のソースを記述して、test.php にファイル名を変換してローカルの WEB サーバーに移動します(赤文字の URL の部分をファイル名に変更します)。 ブラウザを開き、アドレスに http://localhost/test.php と入力してアクセスできます。ファイル参照ボタンを左クリックして適当な画像ファイルを選択して送信を左クリックすると、受け取り側の一時ファイルの場所とファイル名、ファイルのタイプを出力します。




戻る 一覧表示 次へ


BTOパソコン・ゲームPC・自作パソコンなら【TSUKUMO】 - 自作PCに必要なパーツ、豊富な品揃え

Copyright © 2013 MB-Support パソコン初心者のサポートページ All Rights Reserved.

管理人サイト閲覧方法プライバシーポリシー著作権/免責事項