首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >XAMPP通过PHP上传的文件未显示

XAMPP通过PHP上传的文件未显示
EN

Stack Overflow用户
提问于 2015-06-28 11:38:38
回答 1查看 206关注 0票数 4

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

代码语言:javascript
运行
复制
<?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/目录由chown command归属于daemon:daemon
  • /opt/lampp/temp/设置为770权限
  • php.ini设置为允许文件最多为128 is,上传目录为/opt/lampp/temp/
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-28 11:49:29

使用is_uploaded_file()只需检查它是否是上传的文件。它不会将它移到/temp/目录的任何位置。您可能想看看张贴上载手册。示例:

代码语言:javascript
运行
复制
$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/目录中的文件:

如果文件未被移走或重命名,则将从请求末尾的临时目录中删除该文件。

函数档案()是对文件原点的安全检查,这就是它所做的全部工作。您可以将它与move_uploaded_file()一起使用,例如:

代码语言:javascript
运行
复制
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
}

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31099342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档