【问题标题】:PHP upload file without having to create a tempPHP上传文件而无需创建临时文件
【发布时间】:2013-06-11 04:20:30
【问题描述】:

所以我尝试在ubuntu 上使用XAMPP 服务器(Xampp 1.7.7 是的,我知道它很旧)使用PHP 将文件上传到特定目录。

我知道可以做到,但我能找到的每一段代码都想使用临时名称。我认为它会检查是否存在重复文件,但我不能将其设置为直接进入目录吗?我知道这不会是一个问题,所以这可能吗?让我知道是否需要更具体。

另外,请不要问“你为什么不想使用临时目录?”因为我不想/不需要是你的答案。所以如果你有答案,请告诉我。

谢谢! :)

【问题讨论】:

  • PHP 需要将文件放在某个地方,直到您的脚本运行,这就是临时文件的用途。

标签: php ubuntu file-upload xampp tempdir


【解决方案1】:

PHP 不在乎重复文件。如果两个人上传“file.txt”,PHP 不会在意,因为它将使用那个漂亮的随机临时名称。文件冲突处理不是 php 的工作。这取决于您的代码。

虽然如果您不必使用临时文件进行上传会很好,但取消该限制将意味着完全重写 PHP 的上传基础架构。在上传完成AFTER之前不会调用执行文件上传的脚本(无论成功与否)。 PHP 中没有机制允许“实时”脚本在字节流入时接受上传。

如果您需要在上传过程中处理原始稻草,则必须使用其他语言,例如perl.

【讨论】:

  • 好的,我可以使用 php 代码将临时文件名上传到特定位置,而不是转到临时文件位置然后让它从临时文件位置移动到上传目录吗?临时名称没问题,临时目录是个问题。 (如果没有,php.ini中的temp目录怎么设置?找不到好东西给我答案)
  • 您必须通过上传脚本外部的 .ini 指令设置临时目录,例如通过 .htaccess 或 httpd.conf 中的 php_value。您不能在脚本中执行此操作,因为在执行脚本并执行 ini_set() 时,上传已经完成。至于实际设置,RTLM:php.net/manual/en/features.file-upload.post-method.php
  • 好的,我做到了,现在我有一个新问题,它总是说“可能的文件上传攻击!”它不会上传任何东西。我可以为此做点什么吗?
  • 哦等等,我明白这意味着它没有正确上传...它说临时名称在正确的目录中,但文件不在临时目录或上传目录中。是的,我创建了我告​​诉它要去的目录。
猜你喜欢
  • 2013-05-05
  • 2018-01-18
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-05
  • 2021-03-24
  • 1970-01-01
相关资源
最近更新 更多