【问题标题】:PHP read from uploaded text file?PHP从上传的文本文件中读取?
【发布时间】:2011-01-13 04:04:01
【问题描述】:

如果我通过表单上传文本文件,是否可以直接从 $_FILES 变量输出其内容,而不是先将其保存到服务器上?我知道这是一个安全风险,但它只会在本地机器上运行。

任何建议表示赞赏。

谢谢。

【问题讨论】:

    标签: php file upload


    【解决方案1】:

    在做

    file_get_contents($_FILES['uploadedfile']['tmp_name']); 
    

    是有效的,但是您还应该检查以确保文件是通过表单上传的,并且在上传过程中没有发生错误:

    if ($_FILES['uploadedfile']['error'] == UPLOAD_ERR_OK               //checks for errors
          && is_uploaded_file($_FILES['uploadedfile']['tmp_name'])) { //checks that file is uploaded
      echo file_get_contents($_FILES['uploadedfile']['tmp_name']); 
    }
    

    一个有用的链接是http://us2.php.net/manual/en/features.file-upload.php

    【讨论】:

    • 嗨,我为什么要通过 is_uploaded_file 检查文件?有什么安全问题吗?它会导致什么问题?你能向我解释一下或提供一些帖子链接吗?谢谢
    【解决方案2】:

    文件在上传的那一刻保存到临时目录,但您可以使用$_FILES['uploadedfile']['tmp_name'] 读取它,而无需保存在永久位置。

    【讨论】:

    • Doh,我一直在这样做,但 HTML 在页面上是不可见的。我使用的是 chrome,所以当我点击查看源代码时,它向我显示了一个重新加载的页面版本,其中文本文件尚未加载:)
    【解决方案3】:

    很遗憾,没有。至少不是通过 $_FILES 变量。对不起。

    编辑:它始终保存为 $_FILES 中的临时文件,您必须始终使用该文件作为内容。

    【讨论】:

    • 好的,好的,当我知道答案是坏消息时,我不会发布!
    • 这个答案是完全正确的,因为这个问题专门询问了 $_FILES 变量,但我认为其他答案对于帖子似乎要问的内容是正确的!
    • 是的,就像 Lukos 说的,你弄错了,“不幸的是,不”是不正确的。您可以从上传的文件中获取内容而不保存它
    猜你喜欢
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-19
    • 2011-08-07
    • 2011-02-08
    相关资源
    最近更新 更多