我需要将一些数据从Web应用程序导出到Windows .reg文件
我已设法创建该文件并强制下载。
$tmpfname = tempnam( sys_get_temp_dir(), "reg_".time().rand()."_" );
$tmpfpath = sys_get_temp_dir() . $tmpfpath;
$handle = fopen( $tmpfname, "w" );
fwrite( $handle, $string );
header( 'Content-type: application/force-download' );
header( 'Content-Disposition: attachment; filename="'.time().'_import-'.$reg_folder.'.reg"' );
header( 'Content-Transfer-Encoding: binary' );
readfile( $tmpfpath );
fclose( $temp );
unlink( $tmpfpath );
问题是,一旦我运行下载的.reg文件,注册表编辑器就会按预期打开并询问有关添加信息[...]您确定吗?单击是后,我收到以下错误消息
无法导入[file]:指定的文件不是注册表脚本。您 只能从注册表编辑器中导入二进制注册表文件。
我的文件看起来像这样
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Martin Prikryl\WinSCP 2\Sessions\Test Site]
"HostName"="hostname"
"UserName"="username"
"PasswordPlan"="password"
<newline>
<newline>
我不完全确定如何以与注册表编辑器兼容的二进制格式输出文件。
注册表文件的内容类型是&#34;注册条目&#34;根据Windows 7的“设置关联”应用程序,但我已尝试在脚本中将内容类型设置为此,但无法识别。
如果有人能够对此有所了解,那将非常感激。感谢
答案 0 :(得分:1)
我不完全确定如何以与注册表编辑器兼容的二进制格式输出文件。
我认为这是导致问题的原因。您需要根据文件格式规范创建文件。 mime类型在这里不太重要,windows对文件结尾(.reg)的作用比mime-types更多。您只需要注意使用正确的mime-type和文件格式。为此,您还需要了解文件格式。
您指的是哪种特定的文件格式规范?您确定要创建二进制.reg文件而不是文本文件吗?