Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP文件上载到本地主机_Php_Apache_Localhost - Fatal编程技术网

PHP文件上载到本地主机

PHP文件上载到本地主机,php,apache,localhost,Php,Apache,Localhost,我使用的是在localhost中工作的Apache服务器。 我不懂php,所以我尝试了w3schools网站上的代码,但我无法让它工作 以下是HTML代码: <!DOCTYPE html> <html> <body> <form action="upload.php" method="post" enctype="multipart/form-data"> Select image to upload: <input typ

我使用的是在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命令只返回“uploads/”,因此我猜$u文件不能正常工作

EDIT2

这次我用XAMPP重新安装了Apache,代码没有问题(它输出“File is a image”),但在我的“uploads”文件夹中仍然没有上传文件。我的“上载”文件夹与localhost中的网页位于同一文件夹中

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

这应该行得通。至于内容长度警告,您需要编辑php.ini文件。
php.ini
编辑这两行。
post\u max\u size=200M

upload\u max\u filesize=200M

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";

}
已编辑

这应该行得通。至于内容长度警告,您需要编辑php.ini文件。
php.ini
编辑这两行。
post\u max\u size=200M

upload\u max\u filesize=200M

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.
所以你可能错过了别的东西

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

您的代码工作正常。 我刚检查过

uploads/untitled.pngFile is an image - image/png.
所以你可能错过了别的东西



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

您是否在正在工作的同一目录中创建了
uploads
文件夹?那么您有什么问题?我已经编辑了我的最后一句话:php代码开头的echo命令只返回“uploads/”,因此我猜$u文件无法正常工作。要调试,请运行
var\u dump($\u文件)
而不是
echo$target\u文件
。如果你想得到比“修复你的代码”更多的解决方案,你应该提供比“不起作用”更多的细节。对不起,我的意思是文件名应该显示,但它是空的。我试过你的调试代码,它返回数组(0){}你在你工作的同一个目录中创建了
uploads
文件夹吗?那你有什么问题吗?我编辑了我的最后一句话:php代码开头的echo命令只返回“uploads/”,所以我猜$u文件不能正常工作。要调试,请运行
var\u dump($\u文件)
而不是
echo$target\u文件
。如果您想要比“修复代码”更多的解决方案,则还应该提供比“不工作”更多的详细信息。很抱歉,我的意思是文件名应该显示,但它是空的。我尝试了调试代码,它返回数组(0){}我试图将目标目录更改为c:/uploads,但没有上载任何内容。我浏览器的控制台是空的,在我编写时,文件名的回音是空的。@oro777请稍等,我在编辑我的文件之前,先让我的一方工作answer@oro777请尝试这些更改,并向我更新结果或任何错误。感谢更新but我在Chrome控制台中遇到以下错误:加载资源失败:服务器响应状态为500(内部服务器错误)@oro777“500代码通常表示服务器上有错误,而不是您的代码。”您应该检查日志。我试图将目标目录更改为c:/uploads,但没有上载任何内容。我的浏览器控制台是空的,在我编写时,echo的文件名是空的。@oro777给我一点时间,在编辑我的answer@oro777请尝试这些更改,并向我更新结果或任何错误ors。感谢更新,但我在Chrome控制台中遇到以下错误:加载资源失败:服务器响应状态为500(内部服务器错误)@oro777“500代码通常表示服务器上有错误,而不是您的代码。”您应该检查日志。