【问题标题】:Read uploaded file into variable instead saving it将上传的文件读入变量而不是保存它
【发布时间】:2025-11-23 00:25:02
【问题描述】:

我希望能够读取上传的文件,但出于安全考虑,我不希望将文件保存在服务器上...是否可以直接将文件读取到变量中?

如果不是,临时文件是如何工作的,在服务器上保存临时文件的安全性如何,何时删除?

【问题讨论】:

  • 通过读取你想获取文件类型、大小和名称等...?

标签: php


【解决方案1】:

您必须将上传的内容保存到文件中,否则任何大文件都会导致错误,因为它很容易使可用内存超载。

Temp 非常不安全,通常系统上的任何人都可以读取/写入/删除您的临时文件。

解决此问题的最佳方法是进行正常的文件上传,然后在您的提交脚本中读取文件并对其进行处理或将其移动到更永久的位置。您现在可以向 tmp 副本发出删除命令。

由于您可能没有删除权限和/或文件可能会被自动删除,因此最好以这种方式发出命令(@ 符号会抑制任何错误,因为您并不关心文件是否已被删除或什么不是,这是一个“以防万一”的场景)

@unlink($filename);

【讨论】:

  • 很好的答案!谢谢!如果两个文件名相同会发生什么,它只是覆盖旧文件吗?
  • 正确。它将覆盖旧文件。
【解决方案2】:

据我所知,它必须存储在某个地方才能与之交互,但是一旦您的脚本完成执行,它就会被删除。见PHP: When does the temporary uploaded files get deleted?

【讨论】:

  • 安全总比后悔好,并发出@unlink($filename);以防万一
最近更新 更多