0

在一个网站上,我显示指向 PDF 文件的链接。当文件的第一次调用到达时,请求被重定向到生成并返回文件的 php 脚本。此外,它将文件保存到链接位置,以便下次直接使用。我发送 pdf mime 类型以使浏览器打开下载对话框而不是重定向

由于我无法控制的原因,无法生成 20 个文件中的一个。

如何回应?

错误 404 或 500 会将浏览器引导至错误页面,而发送 mime-type 将使用户下载空/有缺陷的 pdf 文件。是否有既定的最佳实践?如何让用户知道文件链接已损坏,但仍让他留在网站上而不进行重定向?

4

1 回答 1

1

我有同样的问题并解决如下:

如果您有文件链接,例如:

<a download href="/files/document.pdf">Click to download</a>

如果您不希望浏览器在文件不存在的情况下重定向到空白/错误页面,只需回复 204 而不包含任何内容。

什么都不会发生,用户将留在他所在的位置而不会重定向。

在 php 中,它看起来像这样:

if (!readfile("/files/document.pdf") {
    http_response_code(204);
    die();
}
于 2021-08-13T19:17:43.723 回答