如何在单击链接时触发另存为弹出窗口?具体来说,我如何触发 MIME 类型的变化?

Posted

技术标签:

【中文标题】如何在单击链接时触发另存为弹出窗口?具体来说,我如何触发 MIME 类型的变化?【英文标题】:How do I trigger a save as pop-up on clicking of a link? Specifically, how do I trigger than MIME type change? 【发布时间】:2013-02-06 20:19:54 【问题描述】:

我已阅读以下问题:save file onclick

我明白它在说什么,但我不明白如何让它适用于任意文件。我会将 href 属性设置为等于包含该信息的 php 脚本吗?

是 POST 还是 GET?我可以指定吗?我将使用脚本中的什么方法来检索文件名?

【问题讨论】:

【参考方案1】:

请求的方法与它关系不大。您的请求将触发来自服务器的响应,然后服务器会提供文件。

它可能类似于www.site.com/serveFile.php?file=foo.txt。您在哪里指定要作为 GET 参数提供的文件。

然后在代码中,您可以检索文件名(或一些数字标识符,或用于从数据库中检索数据以提供 CSV 内容的某个日期范围)、使用该变量、生成内容、设置标题。一切都是如此。认为您链接的帖子解释了以正确的下载方式提供内容的机制(另存为)。

【讨论】:

啊,谢谢。那么出于好奇,如果使用 GET,我将如何使用 POST 来执行此操作?我可以通过单击链接并传递变量来了解如何做到这一点,但是使用 POST,你怎么能在没有提交按钮的情况下传递它呢? 一种选择是使用 javascript 编程生成Xhr post。另一个是......很好地使用方法设置为 POST 的表单。使用 GET 与 POST 确实不会改变您提供文件的方式,只是提交数据的来源。您的脚本甚至可以仅使用 $_REQUEST 不可知论地工作,我不建议这样做。可以是表单、href、按钮,您所要做的就是向任何服务于文件的内容发出请求,可选地传递参数。 我是否可以在设置为发布的表单中设置一个锚标记,并且当我单击它时它会激活发布请求并允许我识别哪个被单击?使用 GET 有什么缺点吗?由于某些莫名其妙的原因,我对通过 URL 访问它感到很奇怪。 是的。可能。任何人都可以查看页面的来源。此外,我可以像欺骗 GET 一样轻松地欺骗 POST。在任何相关意义上,两者都可以“通过 URL 访问”。您需要阅读更多内容,查看其他代码/站点。如果需要,一旦您有更多信息,请发布一个新问题。扩大主题。

以上是关于如何在单击链接时触发另存为弹出窗口?具体来说,我如何触发 MIME 类型的变化?的主要内容,如果未能解决你的问题,请参考以下文章

强制打开“另存为...”弹出窗口在文本链接处打开单击以获取 HTML 中的 PDF

“图片另存为”时弹出的小窗口最近变成了大窗口(几乎全屏),怎么调回小窗口去

用户单击链接时如何强制“另存为”选项

单击html中的按钮时如何将视频播放为弹出窗口

wps表格有多个表格时怎样另存为其中单一的一个表格

弹出文件下载窗口时如何提取文件下载的URL?