PHP上传文件DEMO

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GBK">

<title>upload</title>

</head>

<body>

<!-- 

**********文件上传测试*************

form加上enctype="multipart/form-data" method="post"

input type改为file

**********文件上传测试*************

 -->

<form action="upload.php" method="post" enctype="multipart/form-data">

    <input type="file" name="test[]"/>

    <input type="file" name="test[]"/>

    <div></div>

    <input type="submit" value="submit" />

</form>

</body>

</html>

index.php

 

<?php

// 所有的上传文件都缓存在关系数组$FILES里面,循环可获取

/*

 * 这里支持单个文件上传、多个文件上传(非单个控件多选文件,是多个控件选中多个文件)

 * <input type="file" name="test"/>

 * <input type="file" name="test"/>

 * 支持 控件名为 name="name" 和name="name[]"的多文件上传

 * <input type="file" name="test[]"/>

 * <input type="file" name="test[]"/>

 */

foreach ($_FILES as $key => $value) {

    // 获取文件名

    $names = $value["name"];

    // 如果文件名是个数组的话就是多文件上传

    if (is_array($names)) {

        for ($i = 0; $i < count($names); $i++) {

            copyFile($names[$i], $value['tmp_name'][$i], $value["error"][$i]);    

        }

    } else copyFile($names, $value['tmp_name'], $value["error"]);

}

// 文件名,临时文件名,错误码

function copyFile($name, $tmpName, $error) {

    // 错误码大于0,直接返回

    if ($error > 0) return;

    // 如果文件已经存在,输入提示信息,不保存

    if (file_exists($name)) {

        echo $name . " already exists. ";

    } else { // 否则正常保存文件

        move_uploaded_file($tmpName, $name);

        echo "Stored in: " . dirname(__FILE__) . '\\' . $name;

    }

}

?>

upload.php

 

两个文件置于同一个文件夹中,发布在apache htdocs文件夹中访问

你可能感兴趣的:(demo)