从同一页面下载第二个 .ics 文件会打开以前保存的文件

Posted

技术标签:

【中文标题】从同一页面下载第二个 .ics 文件会打开以前保存的文件【英文标题】:Downloading Second .ics file From Same Page Opens the Previously Saved One 【发布时间】:2017-08-31 11:25:16 【问题描述】:

我有一个页面,其中包含“添加到日历” 链接。这些下载 Icalendar (.ics) 事件。这是针对旅行情况的,因此可以有两个事件(出境和回程),每个事件都作为单独的下载提供。

如果我单击一个(例如出站),它会下载并提供打开它。我这样做并单击保存到日历并将其添加到我的日历中。到现在为止还挺好。然后我单击另一个(返回)并下载,但是当我打开它时,它会打开已保存的出站事件,而不是返回的新事件。因此,错误的数据,我没有选择保存它(因为事件已经存在)。

这在 iPhone(Safari 浏览器)和 android 手机(Chrome)上都会发生。桌面没有问题。关闭日历应用程序没有帮助。

只有在我将第一个事件添加到日历时才会发生这种情况 - 如果我只是返回而不保存,则没有问题。不管我是先尝试出站还是返回,添加到日历的第一个接管!如果我从日历中删除它,我可以添加另一个。

每个都有一个文件名,其中包含在 Content-Disposition 标头中给出的路由(因此出站和返回具有不同的文件名)。我还确保始终使用新副本。完整的标题(在回显 ics 文件的内容和死亡之前)是:

header( 'Cache-Control: no-cache, must-revalidate', true ); // HTTP/1.1
header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT', true ); // Date in the past
header( 'Content-Type: text/calendar; charset=utf-8', true );
header( 'Content-Disposition: attachment; filename="' . $filename . '"', true );
header( 'HTTP/1.0 200 OK', true, 200 );

我现在有点想不通。

【问题讨论】:

【参考方案1】:

好的。原来电话是正确的,前景是错误的。后端将电子邮件地址重新用作 UID,因此所有事件都具有相同的 UID...

我现在已修复后端代码以使用更合理的 UID。它有效

【讨论】:

很高兴您发现并回复了。这正是问题所在。

以上是关于从同一页面下载第二个 .ics 文件会打开以前保存的文件的主要内容,如果未能解决你的问题,请参考以下文章

Python的request出现问题?

如何从第二个标签窗口打开第一个标签窗口的网址页面?

在 Xcode 5 中使用 NSUserDefaults 保存第二个打开的视图

按下保存按钮pyqt5后关闭第二个小部件

单击按钮时防止jquery ui打开第二个对话框

软件测试之error