【问题标题】:PHP Uploaded file not going where I want it toPHP上传的文件没有去我想要的地方
【发布时间】:2019-06-06 16:52:56
【问题描述】:

我有一个 php 脚本,它是在互联网的大量帮助下编写的,但我不完全理解发生了什么。 它是一个上传工具,应该将上传到我网站的文件发送到服务器上一个名为 uploads 的文件夹中。 当我使用 xampp 时它工作得很好,但是当我在远程服务器上运行它时,我的大学提供给我,脚本将文件保存在它的根文件夹中,而不是把它们发送到我在那里创建的“上传”文件夹中。

我尝试以不同的方式指定目录,但由于它在我的计算机上工作,而不是在大学服务器上,我不知道该怎么做。 大学服务器使用 apache2,在我的电脑上我使用最新版本的 xampp 进行本地测试。

index.html 和upload.php 在同一个文件夹中,两台电脑上都有一个名为“uploads”的子文件夹。

<?php
if(isset($_POST['submit'])){
    $file = $_FILES['file'];

    $fileName = $_FILES['file']['name'];
    $fileTmpName = $_FILES['file']['tmp_name'];
    $fileSize = $_FILES['file']['size'];
    $fileError = $_FILES['file']['error'];
    $fileType = $_FILES['file']['type'];

    $fileExt=explode('.', $fileName);
    $fileActualExt = strtolower(end($fileExt));

    $allowed = array('cvs');

    if(in_array($fileActualExt, $allowed)) {
        if($fileError === 0){
            if($fileSize < 100000){
                $fileNameNew = uniqid('', true).".".$fileActualExt;
                $fileDestination = 'uploads/'.$fileNameNew;
                move_uploaded_file($fileTmpName, $fileDestination);
                header("Location: index.php?uploadsuccess");
            } else {
                echo "Your file is too big!";
            } 
        } else {
            echo "There was an error uploading your file!";
        }
    } else {
        echo "You cannot upload files of this type!";
    }
}
?>

我希望文件在上传中,但它们与脚本位于同一文件夹中。

【问题讨论】:

  • 与上传文件夹相关的脚本在哪里
  • 您是否为您的网络服务器在www 下运行的帐户分配了正确的权限,可能是您创建的文件夹
  • 授予上传文件夹的所有权限。它会帮助你

标签: php apache


【解决方案1】:

尝试在文件路径前添加__DIR__:

$fileDestination = __DIR__.'/uploads/'.$fileNameNew;

如果“uploads”文件夹和upload.php 文件位于同一位置,这应该可以工作。否则,您将不得不修改分配的中间部分('/uploads/')以导航到正确的目录。

另外,见this similar post 有类似问题

【讨论】:

  • 之所以有效,是因为它是绝对路径。 PHP 不保证当前工作目录(CWD)就是运行脚本所在的目录;所有相对路径都是从 CWD 计算的。 __DIR__ 始终是运行脚本所在的目录。
  • 嗯,更准确地说,__DIR__ 是当前文件所在的目录,如果它在另一个脚本中是 included,这一点很重要。
猜你喜欢
  • 2022-11-22
  • 2013-12-08
  • 1970-01-01
  • 2020-01-24
  • 2012-06-18
  • 2020-04-19
  • 1970-01-01
  • 2016-02-06
  • 1970-01-01
相关资源
最近更新 更多