1. 程式人生 > 其它 >php檔案上傳

php檔案上傳

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>upload files</title>
</head>
<body>
    <form action="upload.php" enctype="multipart/form-data" method="post">
        <input type="
hidden" name="MAX_FILE_SIZE" value="10000" /> 上傳檔案:<input type="file" name="file"/> <input type="submit" value="上傳" /> </form> </body> </html>
upload.php

<?php    
    print_r($_FILES);
?>
Array
(
    [file] => Array
        (
            [name] 
=> 照片檔案.jpg [type] => image/jpeg [tmp_name] => F:\wamp\tmp\php41BB.tmp [error] => 0 [size] => 73886 ) )
//判斷是否是POST上傳過來的檔案
if(!is_uploaded_file($tempName)){
    exit("不是通過HTTP POST方式上傳上來的");
}
// 判斷檔案上傳的型別
if(!in_array($fileType, $typeList)){
    exit(
"上傳的檔案不是指定型別"); } //避免使用者上傳惡意檔案,如把病毒副檔名改為圖片格式 if(!getimagesize($tempName)){ exit("上傳的檔案不是圖片"); } // 驗證檔案上傳大小 if($fileSize>100000){ //對特定表單的上傳檔案限制大小 exit("上傳檔案超出限制大小"); } //避免上傳檔案的中文名亂碼,把iconv抓取到的字元編碼從utf-8轉為gbk輸出 $fileName=iconv("UTF-8", "GBK", $fileName); //在圖片名稱後加入時間戳,避免重名檔案覆蓋 $fileName=str_replace(".", time().".", $fileName); // 移動檔案到指定位置 if(move_uploaded_file($tempName, "uploads/".$fileName)){ echo "上傳檔案成功!"; }else{ echo "上傳檔案失敗"; }
file_exists  檢查檔案或目錄是否存在

is_uploaded_file    判斷檔案是否是通過 HTTP POST 上傳的

move_uploaded_file    將上傳的檔案移動到新位置

is_writable   判斷給定的檔名是否可寫

iconv  字元編碼互轉

str_replace  字串替換(更改檔名,防重名)

getimagesize  檢查是否為圖片檔案(其他型別的檔案就算字尾名改了也能被檢測到)