PHP之檔案上傳

來源:互聯網
上載者:User

標籤: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之檔案上傳

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.