Php 移动上传的文件在我的本地机器上无法工作

Php 移动上传的文件在我的本地机器上无法工作,php,Php,我是PHP领域的新手。这是我尝试上载的文件: <?php if(isset($_FILES['file'])) { $file = $_FILES['file']; if($file['error'] === 0) { $distination = 'uploads/'; $file_ext = pathinfo($file['name'], PATHINFO_EXTENSION);

我是PHP领域的新手。这是我尝试上载的文件:

<?php  
    if(isset($_FILES['file'])) {

        $file = $_FILES['file'];
        if($file['error'] === 0) {
            $distination = 'uploads/';
            $file_ext = pathinfo($file['name'], PATHINFO_EXTENSION);
            $filename = $distination . uniqid('', true) . '.' . $file_ext;
            if(!move_uploaded_file($file['name'], $filename)) {
                echo "File upload failed!";
            }
        }
    }
?>
<form action="testupload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="Upload">
</form>

move\u上传的\u文件的返回值始终为false。我在上载脚本文件所在的目录中创建了uploads文件夹。

您的主要问题是,您使用的是名称,而不是$\u FILES数组中的tmp\u name值

名称是上传文件的原始名称,tmp_名称是上传后文件的位置

修正了下面的版本。我还添加了对目标目录的检查,并在不可用时自动创建它

<?php  
    if(isset($_FILES['file'])) {

        $file = $_FILES['file'];
        if($file['error'] === 0) {
            $distination = 'uploads/';
            if(!file_exists($distination)){
                mkdir($distination, 0777, true);
            }
            $file_ext = pathinfo($file['name'], PATHINFO_EXTENSION);
            $filename = $distination . uniqid('', true) . '.' . $file_ext;
            print_r($file);
            if(!move_uploaded_file($file['tmp_name'], $filename)) {
                echo "File upload failed!";
            }
        }
    }
?>
<form action="testupload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="Upload">
</form>

web服务器用户可能无法写入上载/目录。始终在开发代码时打开错误报告并显示:error\u reportingE\u ALL;ini设置“显示错误”,1;您将看到失败的原因。请尝试添加$distinion=$\u SERVER['DOCUMENT\u ROOT']./uploads/';。。。这完全取决于“uploads”在文件夹结构中的位置,但至少我希望它是“/uploads/”或“/uploads”,而不仅仅是“uploads/”,并确保“uniqid”返回一个值,而不是空白。@MichaelBerkowski我在哪里添加错误报告ini设置“显示错误”,1;在任何其他PHP代码之前,将其添加到脚本顶部。