保留/放弃Google Chrome PHP下载

保留/放弃Google Chrome PHP下载,php,google-chrome,header,download,Php,Google Chrome,Header,Download,可能重复: 代码: /* .... Code to authenticate to my mysql and verify that we are an legal user. */ $type = mysql_result($AllResult, 0, 'file_type'); $size = mysql_result($AllResult, 0, 'file_size'); $name = mysql_result($AllResult

可能重复:

代码:

    /* 
     .... Code to authenticate to my mysql and verify that we are an legal user.
    */
    $type = mysql_result($AllResult, 0, 'file_type');
    $size = mysql_result($AllResult, 0, 'file_size');
    $name = mysql_result($AllResult, 0, 'file_name');
    $data = mysql_result($AllResult, 0, 'file_content');

    session_write_close();
    ob_clean();
    mysql_close();

    header("Content-Transfer-Encoding: binary");
    header("Content-type: $type");
    header("Content-length: $size");
    header("Content-Disposition: attachment;filename=$name");
    header("Content-Description: PHP Generated Data");
    echo "$data";
我制作了一个PHP代码,用于从数据库中的longblob下载文件并将其保存到用户计算机。这段代码在Opera和Firefox上运行良好。然而,在IE和google chrome上-如果程序没有Microsoft SmartScreen许可证-它将弹出对话框“…名称。。。通常不下载,可能会损害您计算机的安全

说明:

然而;我想知道我是否可以更改标题,或者是否可以获得“此文件可能会危害您的计算机”对话框。你想保留。。。。。无论如何?“[保留][放弃]

我正在谈论的对话的说明:


更新:我已尝试对我的内容处置使用内联和附件,结果相同

至少从Chrome端开始,将无法禁用此通知。您会看到“这种类型的文件可能会危害您的计算机”,因为您下载的扩展名是可执行的(即.exe、.dll等)。微软可能也是如此。我知道,如果文件是“普遍下载的”(即他们看到很多人),微软的系统将停止抱怨 下载相同的文件)。如果存在可以绕过此通知的标题,则对用户有害


您可以完全避免这种情况,方法是确保您的下载名称有一个扩展名,如.txt、.html等,该扩展名不可执行,因此不会被浏览器供应商视为高优先级威胁。

至少在Chrome端,将无法禁用此通知。您会看到“这种类型的文件可能会危害您的计算机”,因为您下载的扩展名是可执行的(即.exe、.dll等)。微软可能也是如此。我知道,如果文件是“普遍下载的”(即他们看到很多人),微软的系统将停止抱怨 下载相同的文件)。如果存在可以绕过此通知的标题,则对用户有害


您可以完全避免这种情况,方法是确保您的下载名称有一个扩展名,如.txt、.html等,该扩展名不可执行,因此通常不会被浏览器供应商视为高优先级威胁。

请不要使用
mysql.*
函数编写新代码。它们不再得到维护,社区已经开始。看到了吗?相反,你应该学习并使用或。如果你不能决定哪一个,我会帮你的。如果您选择PDO,。请不要使用
mysql.*
函数来编写新代码。它们不再得到维护,社区已经开始。看到了吗?相反,你应该学习并使用或。如果你不能决定哪一个,我会帮你的。如果你选择PDO,谢谢你的回答;通过直接引用文件“”,它将投诉更改为保留/放弃。有没有比直接引用文件更安全的方法呢?我指的文件名是在代码的行标题中用标题设置的(“内容处置:附件;文件名=$name”)。没有必要直接引用任何文件。您当前正在为脚本输出将$name变量设置为什么?$name变量是从数据库加载的。它最初是从$_FILES[“file”][“name”]设置的。加载$name变量时,您正在加载一个扩展名为.exe或.dll(可执行文件)的名称,这会导致标头告诉浏览器它是可执行的。只需删除名称的扩展部分,并重命名为.txt或另一个不可执行的扩展名,它将服务于您的特定用途,您应该没有问题。如果不是这样的话,请确保Windows允许文件名中的所有拉取名称中的字符,否则会发生BARF和随机重命名。非常好。很高兴有人能帮你把这个修好。不过,谢谢你的回答;通过直接引用文件“”,它将投诉更改为保留/放弃。有没有比直接引用文件更安全的方法呢?我指的文件名是在代码的行标题中用标题设置的(“内容处置:附件;文件名=$name”)。没有必要直接引用任何文件。您当前正在为脚本输出将$name变量设置为什么?$name变量是从数据库加载的。它最初是从$_FILES[“file”][“name”]设置的。加载$name变量时,您正在加载一个扩展名为.exe或.dll(可执行文件)的名称,这会导致标头告诉浏览器它是可执行的。只需删除名称的扩展部分,并重命名为.txt或另一个不可执行的扩展名,它将服务于您的特定用途,您应该没有问题。如果不是这样的话,请确保Windows允许文件名中的所有拉取名称中的字符,否则会发生BARF和随机重命名。非常好。很高兴有人能帮你修好。