【问题标题】:XAMPP centos uploaded files by PHP not shows upXAMPP centos通过PHP上传的文件不显示
【发布时间】:2015-06-28 11:38:38
【问题描述】:

我在Centos 7 专用机器上运行xampp 5.6.8。 我开发了Simple脚本通过机器上的PHP将任何文件上传到服务器,PHP代码:

<?php
if (is_uploaded_file($_FILES['uploadfile']['tmp_name'])) {
   echo "File ". $_FILES['uploadfile']['name'].'-'.$_FILES['uploadfile']["tmp_name"]." - uploaded successfully.<br>";
   echo disk_free_space('/');
}
?>

<html>
<head>
    <title>test</title>
</head>
<body>
    <div style="text-align:center;">
        <form action="" method="post" enctype="multipart/form-data">
            <input name="uploadfile" type="file">
            <input name="sendfile" value="upload" type="submit">
        </form>
    </div>
</body>
</html>

当我发送样本文件时,回显返回:

文件 sample.txt - /opt/lampp/temp/phpD58n0L - 上传成功。

一些信息和事实:

  • 当我将xampp 转为daemon 用户运行时
  • /opt/lampp/temp/ 目录属于daemon:daemon by chown command
  • /opt/lampp/temp/ 设置为 770 权限
  • php.ini 设置为允许最大 128mb 的文件,上传目录为 /opt/lampp/temp/

【问题讨论】:

    标签: php centos xampp


    【解决方案1】:

    使用is_uploaded_file() 只是检查它是否是上传的文件。它不会将它从 /temp/ 目录移到任何地方。您可能想看看manual on POST uploads。示例:

    $uploaddir = '/var/www/uploads/';
    $uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
        echo "File is valid, and was successfully uploaded.\n";
    } else {
        echo "Possible file upload attack!\n";
    }
    

    也就是说,您应该使用move_uploaded_file() 将上传移动到它所属的位置。否则,手册说,解释为什么在 /temp/ 目录中找不到文件:

    如果该文件没有被移走或重命名,则该文件将在请求结束时从临时目录中删除。

    函数is_uploaded_file() 是对文件来源的安全检查,这就是它所做的一切。您可以将它与move_uploaded_file() 一起使用,例如:

    if (is_uploaded_file($_FILES['userfile']['tmp_name'])) { 
        if (move_uploaded_file($_FILES['userfile']['tmp_name'], $destination_file)) {
            // Was moved
        }
        else {
            // Wasn't moved
        }
    else {
        // Wasn't valid
    }
    

    这对于常规的文件上传和移动可能是多余的,但我在手册的 cmets 中注意到 move_uploaded_file() 在任何情况下都会进行检查。

    【讨论】:

      猜你喜欢
      • 2017-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      相关资源
      最近更新 更多