如果我默认在文件名中命名,我可以成功下载我的微软词.但是,如果我使用$变量来命名它.文件扩展名将是未知的.
样品:
$No = 1;
$Name = 'John';
$Test = 'Science';
//Download header
$document->save($doc);
header('Content-Description: File Transfer');
header('Content-Type: application/msword');
header("Content-Disposition: attachment; filename='$No_$Name_$Test.docx");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($doc));
ob_clean();
flush();
readfile($doc);
Run Code Online (Sandbox Code Playgroud)
所以,如果我将我的文件名重命名为变量.文件下载没有docx扩展名.有人可以提供建议吗?
谢谢
Kon*_*nin 18
正确的标题是
for Excel(*.xlsx):
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="' . $fileName . '"');
Run Code Online (Sandbox Code Playgroud)
for Word(*.docx):
header('Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document');
header('Content-Disposition: attachment;filename="' . $fileName . '"');
Run Code Online (Sandbox Code Playgroud)
改变这个
header('Content-Type: application/msword');
Run Code Online (Sandbox Code Playgroud)
至
header('Content-Type: application/octet-stream');
Run Code Online (Sandbox Code Playgroud)
编辑:
并改变
header("Content-Disposition: attachment; filename='$No_$Name_$Test.docx");
Run Code Online (Sandbox Code Playgroud)
至
header("Content-Disposition: attachment; filename=\"{$No}_{$Name}_{$Test}.docx\"");
Run Code Online (Sandbox Code Playgroud)