フォノクラフト株式会社:作業メモや備忘録など

作業メモや備忘録など…

ファイルのアップロード

without comments

説明

ファイルを日付時分にリネームしてアップロードします。
一番最後のドットだけをファイルタイプの判断材料にすることでファイル名にドットが幾つもある場合でも正確な判断をします。
inputエリアの「クリア」ボタンはおまけ。
アップしたファイルを一括削除するスクリプトもあります。

ソース

入力

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>ファイルのアップロード</title> 
<!-- クリアボタン -->
<script type="text/javascript">
function sample(oId){
	var obj = document.getElementById(oId);
	var stO = obj.innerHTML;
	obj.innerHTML = stO;
}
</script>
<!-- /クリアボタン -->
</head>
<body>

<form name="UserSend" action="confirm.php" method="post" enctype="multipart/form-data">

<p>
	アップロード
</p>
<p  id="CLEARINPUT">
	<input type="file" size="40" name="upfile" value="" maxlength=""> <input type="button" value="クリア" onclick="sample('CLEARINPUT')">
</p>
<p>
	<input type="submit" name="" value="アップロードする">
</p>

</form> 

</body> 
</html>

確認&アップロード

アップロード先のディレクトリは「./upload_files」とする

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>ファイルのアップロード</title> 
</head>
<body>

<p>
	<?php
	$updir = "./upload_files";
	$tmp_file = @$_FILES['upfile']['tmp_name'];
	$file_kakutyoshi = substr(strrchr(@$_FILES['upfile']['name'], '.'), 1);//最後のドットだけを判断し拡張子を取り出す(これによりファイル名にドットがある場合でもOK)
	@list($file_name,$file_type) = explode(".",@$_FILES['upfile']['name']);//ファイル名を取り出す(拡張子とファイル名をドットで区切って判断している)
	$copy_file = date("Ymd-His") . "." . $file_kakutyoshi;//ファイル名と拡張子を繋げる
	if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
		if (move_uploaded_file($tmp_file,"$updir/$copy_file")) {
		//if($file_kakutyoshi =="") {//ファイル拡張子が取得出来なかった場合はファイルがアップされていないものと見なす
			chmod("upload_files/" . $_FILES["upfile"]["name"], 0644);
			echo $_FILES["upfile"]["name"] . "をアップロードしました。<br />";
			echo "(※アップロードしたファイルは <a href=\"" . $updir . "/" . $copy_file . "\" target=\"_blank\">こちら</a> から確認できます。)";
		} else {
			echo "ファイルをアップロードできませんでした。";
		}
	} else {
		echo "<span class=\"fcb fwb\" style=\"font-size:14px;\">ファイルが選択されていません。</span>";
	}
	?>
</p>


</body> 
</html>