056.htmファイルのソース
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<META name="GENERATOR" content="IBM WebSphere Studio Homepage Builder Version 7.0.0.0 for Windows">
<META http-equiv="Content-Style-Type" content="text/css">
<title></title>
</head>
<body bgcolor="#bbccff" text="#ff44ff">
<form ENCTYPE="multipart/form-data" method="POST" action="056.php">
<input type="hidden" name="MAX_FILE_SIZE" size="50000"><br>
添付ファイル<br><font color="#ff0000">注1)</font>画像ファイルまたはHTMLファイルで2MB以下のもの<br><font color="#ff0000">注2)</font>HTMLファイルの実行結果は確認できません。<br>
<input type="file" style="color='#ff44ff'; background-color='#bbccff';" name="item"><br><br>
<input type="submit" style="color='#ff44ff'; background-color='#bbccff';" value="送信">
</form>
</BODY>
</html>
------------------------------------------------------------------------------
------------------------------------------------------------------------------
056.phpファイルのソース
<html>
<head></head>
<body>
<font size="5" color="#0000ff"><a href="056form.htm">戻る</a><br><br>表示結果です。</font><br><br>
<?php
error_reporting(1);
// フォルダのパスを変数に格納
$updir = "./item/";
// 変数に格納上から順番にファイル名と拡張子・ファイルの種類・ファイルサイズ・エラーの種類
// ファイルの種類の最初の5文字・ファイルの種類の最初の4文字
$item = $_FILES["item"]["name"];
$item_type = $_FILES["item"]["type"];
$item_byte = $_FILES["item"]["size"];
$item_error = $_FILES["item"]["error"];
$type_image = substr($item_type,0,5);
$type_appli = substr($item_type,5);
// アルファベットをランダムで変数に格納してそれぞれの変数を結合してファイル名を作成
$moji = array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
$moji1 = $moji[rand(0,25)];
$moji2 = $moji[rand(0,25)];
$moji3 = $moji[rand(0,25)];
$moji4 = $moji[rand(0,25)];
$moji5 = $moji[rand(0,25)];
$moji6 = $moji[rand(0,25)];
$moji7 = $moji[rand(0,25)];
$rename = $moji1 . $moji2 . $moji3 . $moji4 . $moji5 . $moji6 . $moji7 . ".htm";
//画面に表示
// Switchはエラートラップです。
switch($item_error){
case 0:
print "アップロード成功しました。<br>";
break;
case 1:
print "php.iniに設定されたupload_max_filesize値を超えてます。<br>";
break;
case 2:
print "フォームで設定されたMAX_FILE_SIZE値を超えてます。<br>";
break;
case 3:
print "一部分のみしかアップロードされていません。<br>";
break;
case 4:
print "アップロードされませんでした。<br>";
break;
default:
print "<br>";
break;
}
// Ifは順番に添付ファイルを指定されたかどうか → ファイルサイズの判定
// → 指定できる範囲のファイルかどうか(ここではイメージファイルとテキストファイルのみ)
// ファイルサイズの変更はサーバのPHP.iniファイルの修正が必要です。
// ※(PHP.iniファイルのデフォルトは2Mです。)
if(!$item){
print "<font size='5' color='#ff0000'>添付ファイルの指定はありませんでした。</font><br>";
}else{
if($item_byte <> 0){
if($type_image == "image"){
// ファイル転送、データ保存
move_uploaded_file($_FILES["item"]["tmp_name"], $updir . $_FILES["item"]["name"]);
print("ファイル:" . $item . ":" . $item_byte . "バイト " . "ファイルタイプ:" . $item_type . "<br>");
print("<img src='{$updir}{$_FILES["item"]["name"]}'>");
}else if($type_appli == "html"){
// ファイル転送、データ保存
move_uploaded_file($_FILES["item"]["tmp_name"], $updir . $rename);
print("ファイル:" . $item . ":" . $item_byte . "バイト " . "ファイルタイプ:" . $item_type . "<br>");
}else{
print "<font size='5' color='#ff0000'>画像、HTMLファイル以外のものが添付されました。</font><br>";
}
}else{
print "<font size='5' color='#ff0000'>データが2MBを超えていますので添付できません。</font><br>";
}
}
?>