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

Den*_*one 1 php forms file-upload

不要$_FILES["file_name"]["tmp_name"];被摧毁,如果用户进入到另一个PHP页面?

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

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

dec*_*eze 5

文件上传的工作方式如下:

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

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

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