PHP 文件上传到本地主机

PHP File upload to localhost

我正在使用在本地主机上运行的 Apache 服务器。 我不知道 php 所以我尝试了 w3schools 网站的代码,但我无法让它工作。

这是 HTML 代码:

<!DOCTYPE html>
<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>

PHP代码:

<?php
$target_dir = "uploads/";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
echo $target_file;
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
    $check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
    if($check !== false) {
        echo "File is an image - " . $check["mime"] . ".";
        $uploadOk = 1;
    } else {
        echo "File is not an image.";
        $uploadOk = 0;
    }
}
?>

php 代码开头的 echo 命令,只有 returns "uploads/" 所以我猜 $_FILES 不能正常工作。

EDIT2

这次我用 XAMPP 重新安装了 Apache,我的代码没有问题(它输出 "File is an image")但是我的 "uploads" 文件夹中仍然没有上传文件.我的 "uploads" 文件夹与我在本地主机中的网页位于同一文件夹中。

我正在使用默认值 php.ini(file_uploads = 打开)。 我尝试了不同目录中不同大小的不同文件,但到目前为止没有成功。

已编辑

这应该可以正常工作。至于内容长度警告,您需要编辑 php.ini 文件。
php.ini
编辑这两行。
post_max_size = 200M
upload_max_filesize = 200M

html

<html>
<body>

<form action="upload.php" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="fileToUpload" id="fileToUpload">
    <input type="submit" value="Upload Image">
</form>
</body>
</html>

upload.php

<?php
if (!empty($_FILES) && isset($_FILES['fileToUpload'])) {
    switch ($_FILES['fileToUpload']["error"]) {
        case UPLOAD_ERR_OK:
            $target = "upload/";
            $target = $target . basename($_FILES['fileToUpload']['name']);

            if (move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $target)) {
                $status = "The file " . basename($_FILES['fileToUpload']['name']) . " has been uploaded";
                $imageFileType = pathinfo($target, PATHINFO_EXTENSION);
                $check = getimagesize($target);
                if ($check !== false) {
                    echo "File is an image - " . $check["mime"] . ".<br>";
                    $uploadOk = 1;
                } else {
                    echo "File is not an image.<br>";
                    $uploadOk = 0;
                }

            } else {
                $status = "Sorry, there was a problem uploading your file.";
            }
            break;

    }

    echo "Status: {$status}<br/>\n";

}

您的代码运行良好。 我刚查过

uploads/untitled.pngFile is an image - image/png.

所以你可能还漏掉了其他东西。

提供您正在使用的文件列表及其完整代码