第13章ファイルのアップロード
4300 ワード
Demo1.php
Demo2.php
Demo3.php
<form enctype="multipart/form-data" action="Demo2.php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000" />
: <input type="file" name="userfile" />
<input type="submit" value=" " />
</form>
Demo2.php
<?php
//
//$_FILES;
// ,
//[userfile][name]
//[userfile][type] : ,jpg :image/jpeg
//[userfile][tmp_name] C:\WINDOWS\temp\php28.tmp
//[userfile][error] , 。
//[userfile][size]
print_r($_FILES);
echo '<br/>';
//is_uploaded_file -- HTTP POST
// HTTP POST ,
$fileMimes = array('image/jpeg','image/pjpeg','image/gif','image/png','image/x-png');
//
if(is_array($fileMimes)){
if(!in_array($_FILES['userfile']['type'],$fileMimes)){
echo "<script>alert(' jpg,png,gif ');history.back();</script>";
exit;
}
}
//
define('URL',dirname(__FILE__).'\uploads');
echo URL;
//
if(!is_dir(URL)){
mkdir(URL,0777); // 0777, ,
}
define('MAX_SIZE',2000000);
if($_FILES['userfile']['size'] > MAX_SIZE){
echo "<script>alert(' 2 M');history.back();</script>";
exit;
}
//
// , JPG
// if($_FILES['userfile']['type'] != 'image/jpeg' && $_FILES['userfile']['type'] != 'image/pjpeg'){
// echo "<script>alert(' JPG ');history.back();</script>";
// exit ;
// }
// switch ($_FILES['userfile']['type']){
// case 'image/jpeg'://
// break;
// case 'image/pjpeg':
// break;
// case 'image/gif':
// break;
// case 'image/png'://
// break;
// case 'image/x-png'://IE
// break;
// default: echo "<script>alert(' jpg,png,gif ');history.back();</script>";
// exit ;
// }
// , ,
if($_FILES['userfile']['error']>0){
switch ($_FILES['userfile']['error']){
case 1:echo "<script>alert(' 1');history.back();</script>";
break;
case 2:echo "<script>alert(' 2');history.back();</script>";
break;
case 3:echo "<script>alert(' ');history.back();</script>";
break;
case 4:echo "<script>alert(' ');history.back();</script>";
break;
}
exit;
}
if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
//
//move_uploaded_file --
// , ,
// ,
//
// , @
if(!move_uploaded_file($_FILES['userfile']['tmp_name'],URL.'/'.$_FILES['userfile']['name'])){
// ,
echo ' ';
exit;
}
}else{
echo "<script>alert(' ');history.back();</script>";
exit;
}
//
// Demo3.php
//
echo "<script>alert(' ');location.href='Demo3.php?url=".$_FILES['userfile']['name']."';</script>";
?>
Demo3.php
<?php
$url = $_GET['url'];
echo "<img src=\"uploads/".$url."\"/>";
?>