点击网页上的链接后,Chrome会下载一个PHP文件。内容是一些与我无关的XML。很少见,我宁愿Chrome在同样的情况下表现得像IE,也就是打开一个Java应用程序。
根据此主题的先前研究,请允许我抢占可能的答案:
我没有互联网下载管理器。
我已经尝试从一开始就清除所有缓存数据。
通过比较,Firefox提示我使用Java Web Starter保存或打开文件;选择后者会产生预期的行为。
我已经阅读了有关安装Xamp或Wamp的内容 - 我真的不明白它们是什么,并且我不愿意安装它们。除了学习如何安抚Chrome之外,我还想了解Chrome正在尝试做什么,以及当IE和Firefox能够这样做时它为什么不起作用。在这方面,我们赞赏php文件的一般解释,它们与Java和/或Java Web Starter的关系。
答案 0 :(得分:1)
虽然这看起来更适合超级用户,但我会给出两分钱。我认为这与Chrome去年的NPAPI支持有关。
详细说明,Java浏览器插件依赖于NPAPI,Chrome不再支持启动第45版.Oracle似乎没有解决这个问题,而是推动用户寻找仍然支持NPAPI的替代方案(即Firefox) ,Safari)。
在这种情况下,当Chrome加载有问题的页面时,它的行为就像没有安装Java一样(因为它无法打开Java应用程序)。
参考/进一步阅读:
答案 1 :(得分:0)
剪切并粘贴此PHP并将其另存为名为download.php的php文件。当您要使用文件名下载文件时,请调用它。例如:
的download.php?文件= nameofyourfilehere
这将强制下载而不是打开文件。它还可以处理大文件。
<?php
$file = $_REQUEST['file'];
$filename = $file;
define('CHUNK_SIZE', 1024*1024); // Size (in bytes) of tiles chunk
// Read a file and display its content chunk by chunk
function readfile_chunked($filename, $retbytes = TRUE) {
$buffer = '';
$cnt =0;
// $handle = fopen($filename, 'rb');
$handle = fopen($filename, 'rb');
if ($handle === false) {
return false;
}
while (!feof($handle)) {
$buffer = fread($handle, CHUNK_SIZE);
echo $buffer;
ob_flush();
flush();
if ($retbytes) {
$cnt += strlen($buffer);
}
}
$status = fclose($handle);
if ($retbytes && $status) {
return $cnt;
}
return $status;
}
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=".basename($file).";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($file));
readfile_chunked($filename);
exit();
?>