gpt4 book ai didi

php - 如何在 IE (PHP) 中下载服务器文件的更新版本?

转载 作者:行者123 更新时间:2023-12-04 05:43:00 25 4
gpt4 key购买 nike

Internet Explorer 让我很头疼...

我想要做的是 - 单击一个 .csv 文件下载到客户端时创建一个按钮。此 .csv 文件包含存储在我在页面上生成的结果表之一中的信息。

在创建此按钮之前,我正在调用一个内部函数来根据当前显示的表格创建 .csv 文件。我在服务器上创建了这个 .csv 文件。为了以防万一,我会在此处包含此功能,但我认为它没有任何帮助。就像我说的,我在创建按钮之前创建了这个文件。

/*
/ Creates a .csv file including all the data stored in $records
/ @table_headers - array storing the table headers corresponding to $records
/ @records - two dimensional array storing the records that will be written into the .csv file
/ @filename - string storing the name of the .csv file created by this from
*/
public function export_table_csv( $table_headers, $records, $filename )
{
// Open the $filename and store the handle to it in $csv_file
$csv_file = fopen( "temp/" . $filename, "w" );

// Write the $table_headers into $csv_file as a first row
fputcsv( $csv_file, $table_headers );
// Iterate through $records and write each record as one line separated with commas to $csv_file
foreach ( $records as $row )
fputcsv( $csv_file, $row );

// Close $csv_file
fclose( $csv_file );
} // end export_table_csv()

我有那个工作正常。我得到了“导出”按钮,我正在使用它的 onClick() 事件,我使用的是单行:
window.open( 'temp/' . $export_filename );

现在,它可以在所有浏览器中按预期工作,IE 除外。该文件仍然会被下载,但是当我对我在页面上显示的表格执行一些过滤时(每当应用新过滤器时页面都会重新加载),然后再次按下“导出”按钮,它以某种方式下载了旧版本应用了旧过滤器的 .csv 文件,而不是当前的过滤器,即使每次应用新过滤器并重新加载页面时都会重新编写此 .csv 文件。

就好像我要导出的 .csv 文件存储在 IE 的缓存中一样......这真的很烦人,因为导出在所有其他浏览器中都可以正常工作...... Chrome 和 FF 总是从服务器,IE 随机更新文件,有时只有在我提交带有不同过滤器的页面几次之后......

我没有在我的代码中包含太多行,因为我宁愿认为我只是在我的代码中缺少某种元标记或其他东西,而不是在我已经编写的行中存在逻辑错误。

我真的对此感到困惑,至少可以说很生气......我现在真的开始不喜欢IE了......

我很感激关于这个问题的任何建议。

最佳答案

您可以使用“缓存破坏者”来防止 IE 缓存资源。

如果您向 URL 添加 GET 参数(每次加载页面时都会更改其值),IE(或者更确切地说:任何浏览器)会认为这是一个不同的文件,因此请执行以下操作:

window.open( 'temp/" . $export_filename . "?cachebuster=" . uniqid(true) . "' );

如果每次单击时都需要更改值(不是在页面加载时):
window.open( 'temp/" . $export_filename . "?cachebuster="' + Math.random() );

关于php - 如何在 IE (PHP) 中下载服务器文件的更新版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11030416/

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