gpt4 book ai didi

php - 请求准备文件并返回路径,准备好后允许用户下载

转载 作者:行者123 更新时间:2023-11-30 13:14:51 25 4
gpt4 key购买 nike

场景&问题描述:

  1. 用户向服务器请求文件
  2. 文件较大,生成需要时间
  3. 客户端正在运行一个微调器以表明我们正在制作文件。
  4. 几分钟后,他们的代理超时,因为服务器没有响应查询(文件太大无法生成的原因)

我的理解:

在深入了解这种情况后,我认为客户端的代理超时了,我无法控制它。我唯一能做的就是改变客户端请求和下载文件的逻辑。

我想到的解决方案:

解决方案 1:

  1. 用户请求文件

  2. 服务器在服务器端创建一个临时文件,并创建一个http路径如

    http:\www.mydomain.com\temp\download\files\12342323.pdf

  3. 链接会更快地发送给客户端,但会在一定时间内保持不活动状态。

  4. 用户点击链接激活后。

方案二:

我对此了解不多,但是是否可以通过 node.js 创建套接字连接并传输文件?

注意事项:

解决方案 1 是我的头等大事,过去 4 小时没有喝咖啡。我唯一被困在知识中的是。我将如何检测该文件是在服务器端完成的,现在我的 ajax 脚本可以启用链接或下载它。

请提出一些新想法来处理这种情况。无需直接回答。我宁愿知道用什么设备钓鱼,然后弄一条现成的鱼。 :) 干杯。

仅供引用:我目前使用 php 和 javascript 作为工具。

最佳答案

如果文件最终总是被创建,并且问题出在客户端,您可以执行以下操作:

  1. 当用户点击下载时,您开始通过 AJAX 生成文件,并将名称存储在 session 变量中,例如
  2. 在客户端中,最简单的解决方案是每 X 秒轮询一次服务器,并让它简单地检查文件是否存在(通过 php),以了解它是否已经创建
  3. 完成后,使用 javascript 将用户重定向到文件的位置以进行下载。

然后您可以设置一个 cron 作业或类似的东西来删除已经下载的文件。

关于php - 请求准备文件并返回路径,准备好后允许用户下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12378440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com