保留tmp上传的文件

Ale*_*lex 5 php file-upload plupload laravel

我正在使用pluploaderLaravel,在我的管理中,创建新文章时它的工作方式是执行以下步骤:

  • 输入创建新文章所需的详细信息
  • 选择要为文章上传的照片
  • 单击按钮时Create,将执行以下操作:
    • 将每张照片的上传详细信息保存在会话数组中。这意味着如果要上传 3 个文件,则每个上传都有一个单独的 POST 操作
    • 将照片保存在该会话数组中后,它就会在数据库中为文章创建记录
    • 它将id创建的文章发送到一个函数,该函数应该获取照片并将它们移动到文件夹中,并将照片记录添加到数据库中

现在的问题是,每个POST临时tmp_filename文件都会被删除,因此当它尝试实际移动照片时......没有要移动的照片。

我说得对吗?如果是的话,我该如何解决这个问题?有什么方法可以保留 tmp 删除直到 X 函数结束吗?

hak*_*kre 4

我对吗,

是的你是对的。PHP 在请求完成后删除上传的临时文件。PHP手册中也清楚地记录了这一点:

如果该文件尚未被移走或重命名,则该文件将在请求结束时从临时目录中删除。

您可以在此处找到该信息:POST method uploads Docs

如果是这样,我该如何解决这个问题?

了解这一点确实表明您应该保留该文件的副本或重命名该文件(如果您想保留它)。

有什么方法可以保留 tmp 删除直到 X 函数结束吗?

正如所写,删除将在请求完成时开始。因此,在 PHP 中,通常所有函数都会在请求完成之前执行,因此即使是 X 函数(如果您在同一请求中调用它)也是如此。

如果不在同一个请求中调用它,则需要引入会话管理并在临时文件被自动删除之前复制或重命名它。PHP 中的任何其他操作都应该通过多个请求来完成,这很常见。请参阅会话文档

另请参阅: