PHP从上传的文本文件中读取?
Posted
技术标签:
【中文标题】PHP从上传的文本文件中读取?【英文标题】:PHP read from uploaded text file? 【发布时间】:2011-01-13 04:04:01 【问题描述】:如果我通过表单上传文本文件,是否可以直接从 $_FILES 变量输出其内容,而不是先将其保存到服务器上?我知道这是一个安全风险,但它只会在本地机器上运行。
任何建议表示赞赏。
谢谢。
【问题讨论】:
【参考方案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 说的,你弄错了,“不幸的是,不”是不正确的。您可以从上传的文件中获取内容而不保存它以上是关于PHP从上传的文本文件中读取?的主要内容,如果未能解决你的问题,请参考以下文章