PHP多文件上傳/下載模塊

上傳部分

<?php
/**
 * PHP多文件上傳模塊
 *
 * 用到的函數:is_upload_file(), move_upload_file(), pathinfo(), file_exists()
 */


//1.獲取要上傳文件的信息
$up_info = @$_FILES['myfile'];
$to_path = "./pic";
$typelist = array("image/gif","image/jpeg", "image/pjpeg", "image/png");

//在循環裏面驗證上傳相關信息
for ($i = 0; $i < count($up_info['name']); $i++) {
    
    //2.判斷文件是否上傳錯誤
    if ($up_info['error'][$i]>0){
        switch ($up_info['error'][$i]){
            case 1:
                $err_info="上傳的文件超過了 php.ini 中 upload_max_filesize 選項限制的值";
                break;
            case 2:
                $err_info="上傳文件的大小超過了 HTML 表單中 MAX_FILE_SIZE 選項指定的值";
                break;
            case 3:
                $err_info="文件只有部分被上傳";
                break;
            case 4:
                $err_info="沒有文件被上傳";
                break;
            case 6:
                $err_info="找不到臨時文件夾";
                break;
            case 7:
                $err_info="文件寫入失敗";
                break;
            default:
                $err_info="未知的上傳錯誤";
                break;
        }
        continue($err_info);
    }
    
    //3.判斷文件上傳的類型是否合法
    if (!in_array($up_info['type'][$i], $typelist)){
        continue("文件類型錯誤!".$up_info['type'][$i]);
    }
    
    //4.上傳文件的大小過濾
    if ($up_info['size'][$i]>1000000){
        continue("文件大小超過1000000");
    }


    //5.上傳文件名處理
    $exten_name = pathinfo($up_info['name'][$i], PATHINFO_EXTENSION);
    do{
        $main_name=date("YmdHis")."--".rand(100, 999);
        $new_name = $main_name.".".$exten_name;
    }while (file_exists($to_path.'/'.$new_name));
    
    
    
    //6.判斷是不是上傳的文件,並執行上傳
    if (is_uploaded_file($up_info['tmp_name'][$i])){
        if (move_uploaded_file($up_info['tmp_name'][$i], $to_path.'/'.$new_name)){
            echo "文件上傳成功!";
        }else{
            echo "文件移動失敗!";
        }
    }

}
?>

下載部分

<?php

$filename = "20140723102400248.jpg";

header('Content-Type:image/jpeg');
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-Length:'.filesize($filename));

readfile($filename);

?>
相關文章
相關標籤/搜索