当用户转到另一个php页面时,tmp_name是否会被销毁?

时间:2012-03-13 02:44:41

标签: php forms file-upload

如果用户转到另一个php页面,$_FILES["file_name"]["tmp_name"];会被销毁吗?

我试图将隐藏表单字段中的tmp_name传递给实际的提交函数,其中tmp_name被复制到服务器。

所以这是我的流程: 用户提交表单 - >用户确认提交(所有$ _POST都添加到隐藏字段) - >确认后,数据已提交,文件为copy()到服务器

1 个答案:

答案 0 :(得分:5)

文件上传的工作原理如下:

  • 用户提交表单,将文件上传到服务器
  • PHP将收到的文件数据存储在/ tmp目录中,将文件名放入脚本的$_FILES数组中
  • PHP执行您的脚本,您可以随心所欲地处理数据
  • 当您的脚本完成后,PHP将清除/ tmp目录中上传的文件数据(如果它仍然存在)

是的,上传的文件仅适用于单个脚本执行。如果您以后需要它们,请将它们移到更永久的位置。

即使通过隐藏的表单字段,也不要将该文件位置传递给用户。这是客户端数据,这意味着用户可以通过将文件路径指向他没有业务的地方来操纵数据并可能导致安全漏洞。