【问题标题】:php - multi-step form with file uploadphp - 带文件上传的多步骤表单
【发布时间】:2011-10-05 16:59:39
【问题描述】:

我似乎找不到澄清。我有 7 个步骤,第二个是上传文件。我遇到的问题是,在最后一步,当我完成表单并尝试访问临时文件时,它显示“无法访问文件:...”(保存在默认的 tmp 文件夹中)。

其他多步骤教程说将其保存在临时文件夹中,然后在完成后移至适当的文件夹。那么他们的意思是我将其从默认临时文件夹移动到我管理的临时文件夹中,然后当他们完成表单时将其再次移动到最终文件夹?

【问题讨论】:

  • 你能告诉我们你的尝试吗?

标签: php file-upload


【解决方案1】:

所以他们的意思是我将它从默认临时文件夹移动到我管理的临时文件夹中,然后当他们完成表单时将其再次移动到最终文件夹?

是的,没错。您对接收文件的请求执行第一步,因为当该请求完成时,如果它们仍然存在,PHP 会删除它们。

请参阅 move_uploaded_fileDocsHandling File Uploads

【讨论】:

  • 好的,感谢您的澄清。只是一个后续,我怎样才能像 PHP 一样正确管理临时文件夹?如果人们在上传后停止并且文件位于临时文件夹中,我是否创建一个脚本来删除超过某个日期/时间的所有文件?如果是这样,我是否在上传文件时运行它?
  • 我将以 .sh 脚本的形式创建一个 管理员作业,该脚本通过 cron 执行。它将保持文件夹清洁独立于您的网站。请参阅相关问题以获取一些有用的提示:Session Files Not Getting Cleaned Up
【解决方案2】:

“临时文件夹”并不意味着/temp

上传后,您实际上应该将文件保存在某个文件夹中,可能使用用户的会话 ID 作为名称。然后,通过最后一步,您应该将该文件移动到其最终位置。

一旦创建它们的程序退出,临时文件(例如,实际的临时文件)就会被销毁(这通常意味着,在 php 中,在下一个输出页面发送到客户端之后)。

【讨论】:

    猜你喜欢
    • 2014-01-19
    • 2011-09-18
    • 1970-01-01
    • 1970-01-01
    • 2013-05-19
    • 2011-07-02
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多