0

我有一个 php 文件,它生成一个使用 POST 参数下载的文件。我已经完成了恢复文件下载的一切工作(使用 Range 标头和所有相关内容)。

但是,如果我暂停下载然后尝试恢复它,浏览器不会在请求中发送 POST 数据。使用 GET 数据可以正常工作,但我想继续使用 POST。我怎样才能使这项工作?

笔记:

  • 该文件是即时生成的,并使用正确的标题发送到浏览器(简单地由 php 打印)。
  • 我无法将文件保存在某处并提供服务。它必须在飞行中提供。
4

1 回答 1

0

*对不起,我的英语不好。

好吧,假设您有数据库来保存 POST 参数。
那么您需要根据参数为下载创建唯一的 url。
假设下载链接是dowload.php<-您在此处发送 POST。

现在你需要把参数保存在那里,让我们说你得到了unique_id.
之后,您将页面重定向到处理下载的新页面(使用 unique_id 参数),例如resume_download.php

示例下载 url 将是resume_download.php?req=[your_unique_id] 或者您可以使用.htaccess使 url 更友好

这不能保证下载会继续,但至少用户不需要重新输入表单。

于 2016-11-19T16:44:37.460 回答