php基础22:上传并且保存文件

时间:2024-06-13 21:38:14
<?php

    /*
        文件上传的限制 && 保存被上传的文件
        在这个脚本中,我们增加了对文件上传的限制。用户只能上传 .gif 或 .jpeg 文件,文件大小必须小于 20 kb:
        上面的例子在服务器的 PHP 临时文件夹创建了一个被上传文件的临时副本。这个临时的复制文件会在脚本结束时消失。要保存被上传的文件,我们需要把它拷贝到另外的位置:
    */

    if ((($_FILES["file"]["type"]=="image/gif") || ($_FILES["file"]["type"]=="image/jpeg") || ($_FILES["file"]["type"] == "image/pjpeg")) && ($_FILES["file"]["size"] < 20000) ) {
        if ($_FILES["file"]["error"]>0) {
            echo "Error: ".$_FILES["file"]["error"]."<br/>";
        }else{

            //输出信息
            echo "Upload: " . $_FILES["file"]["name"] . "<br />";
            echo "Type: " . $_FILES["file"]["type"] . "<br />";
            echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
            echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

            //这个例子把文件保存到了名为 "upload" 的新文件夹。
            if (file_exists("upload/" . $_FILES["file"]["name"])) {
                  echo $_FILES["file"]["name"] . " already exists. ";
            }else{
                  move_uploaded_file($_FILES["file"]["tmp_name"],
                  "upload/" . $_FILES["file"]["name"]);
                  echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
            }
        }
    }else {
        echo "Invalid file";
    }
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>

    <form action="27-fileUploadLimited.php" method="post" enctype="multipart/form-data">
        <p>
            <label for="file">Filename:</label>
            <input type="file" name="file" id="file" />
        </p>

        <p>
            <input type="submit" name="submit" value="Submit" />
        </p>
    </form>
</body>
</html>