標籤:title 表單 後台 建立目錄 .com 簡單 位置 err user
注意事項:
1、表單中enctype="multipart/form-data"是用於設定表單的MIME編碼。
2、全域變數 $_FILES的應用
$_FILES[‘file‘][‘name‘] 為上傳檔案的原檔案名稱
$_FILES[‘file‘][‘type‘] 為上傳檔案的 MIME 類型
$_FILES[‘file‘][‘size‘] 已上傳檔案的大小,單位為位元組
$_FILES[‘file‘][‘tmp_name‘] 檔案被上傳後在服務端儲存的臨時檔案名稱()
$_FILES[‘file‘][‘error‘] 檔案上傳的錯誤碼
更詳細的請參考:http://www.cnblogs.com/lichenwei/p/3879566.html
上傳檔案的圖形介面:
<html>
<head><title>實現一個簡單的檔案上傳功能</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/></head>
<body>
<form enctype="multipart/form-data" action="file_upload_code(8_04).php" method="post">
<input type="hidden" name="MAX_FILE_SIZE" value="1000000"/>
上傳檔案:<input type="file" name="user_file"><br/>
<input type="submit" value="上傳"/>
</form>
</body>
</html>
上傳的後台代碼(file_upload_code(8_04).php):
<?php
header("content-type:text/html;charset=utf-8");
//限制不能上傳text格式的圖片
if($_FILES[‘user_file‘][‘type‘]==‘text/plain‘)
{
echo ‘<script>alert("不能上傳text格式的檔案");histroy.back();</script>‘;
exit();
}
//限制上傳檔案的大小
define(‘MAX_SIZE‘,2000000);//定義一個常量,固定上傳檔案的大小
if($_FILES[‘user_file‘][‘size‘]>MAX_SIZE)
{
echo "<script>alert(‘不好意思,只能上傳2M以內的檔案‘);histroy.back();</script>";
}
//不同瀏覽器,格式不同(比如Google裡ico檔案的類型是image/x-icon,而IE裡ico檔案的類型是image/png),這裡判斷類型是否是數組裡的一種
$file_type=array(‘image/png‘,‘image/x-icon‘);
if(is_array($file_type))//檢測是不是一個數組
{
if(!in_array($_FILES[‘user_file‘][‘type‘],$file_type))
{
echo ‘<script>alert("只允許上傳png或者ico格式的檔案");histroy.back();</script>‘;
exit;
}
}
if($_FILES[‘user_file‘][‘error‘]>0);
{
switch($_FILES[‘user_file‘][‘error‘])
{
case 1:
echo ‘<script>alert("上傳的檔案大小超過了約定值");history.back();</script>‘;
break;
case 2:
echo ‘<script>alert("上傳檔案大小超出了 HTML 表單的 MAX_FILE_SIZE 元素所指定的最大值。");history.back();</script>‘;
break;
case 3:
echo ‘<script>alert("只有部分檔案上傳");history.back();</script>‘;
break;
case 4:
echo ‘<script>alert("沒有任何檔案上傳");history.back();</script>‘;
break;
}
}
/*dirname:返迴路徑中的目錄部分
*/
//建立一個常量,固定上傳的位置
define("url",dirname(__FILE__).‘\you‘);
//判斷目錄是否存在
if(!is_dir(url))
{
mkdir(url,0700);//0700最大許可權,如果沒有就建立目錄
}
if(is_uploaded_file($_FILES[‘user_file‘][‘tmp_name‘]))
{
if(!move_uploaded_file($_FILES[‘user_file‘][‘tmp_name‘],url.‘\\‘.$_FILES[‘user_file‘][‘name‘]))
{
echo $_FILES[‘user_file‘][‘name‘]."上傳失敗!";
}
else
{
echo $_FILES[‘user_file‘][‘name‘]."上傳成功!";
}
}else
{
echo "找不到上傳的檔案";
}
?>
有錯請指出,不懂的請在下方留言!
PHP之檔案上傳