Xmlxファイルを生成しました。これを保存して、次の方法でユーザーに提供できます。
_$writer->save('hello world.xlsx');
header('Location: hello world.xlsx');
_
ただし、ファイルはハードドライブに残ります。それはセキュリティ上の脅威であるため、私はそれを取り除く必要があります。
ファイルのリンクを解除してみました
_unlink('hello world.xlsx');
_
ただし、ファイルの削除が早すぎるため、ユーザーはファイルにアクセスできません。リンク解除で機能する場合は、ファイルが削除されることを確認する必要があります(die();
などを適切に使用するため)
編集:セキュリティ上の理由だけではありません。プロバイダーはファイルの保存を許可していないため、これが唯一の方法です。
使用する php://output
header('Content-Type: application/vnd.ms-Excel');
header('Content-Disposition: attachment; filename="file.xls"');
$writer->save("php://output");
ファイルへのリダイレクトの代わりに、作成直後にファイルを送信できます。
$filename = 'hello world.xlsx';
$writer->save($filename);
// Set the content-type:
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Length: ' . filesize($filename));
readfile($filename); // send file
unlink($filename); // delete file
exit;