(直接下载那个字符串在客户端生成一个文本文件,而不经过在服务器端上生成文件)
是把服务器的字符串放入客户端新建的文本文件,在客户端操作的一般用js,但你想在客户端生成文件是右局限性的,除非你把安全级别设置为最低,才能用js操作客户端的文件读写
fso = new ActiveXObject("Scripting.FileSystemObject");
是把服务器的字符串放入客户端新建的文本文件,在客户端操作的一般用js,但你想在客户端生成文件是右局限性的,除非你把安全级别设置为最低,才能用js操作客户端的文件读写
fso = new ActiveXObject("Scripting.FileSystemObject");
然后直接each字符串内容,对应客户端显示就是文件下载
其实服务器端并没有文件完整的header头包括:
Content-Encoding:
Cache-Control:
Content-Length:
Content-Disposition:
Content-Type:设置Content-Type为application/octet-stream
Content-Disposition为attachmet,filename设置成想要在客户端保存的默认文件名在设置并发送过header之后,就可以直接echo文件内容header之前程序不能有任何输出,否则header会失败。
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file));
Header("Content-Disposition: attachment; filename=" . basename($file));
// 输出内容
echo $string;
exit;
}
strlen($string)这个地方,要改一下,因为strlen是计算字符数的,要改为计算字节数的函数if (!headers_sent()) {
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".strlen($string));
Header("Content-Disposition: attachment; filename=" . $filename);
// 输出内容
echo $string;
exit;
}