はじめに
こんばんは。
前回に続いて簡単なものです。
本日、phpで実装したファイルダウンロードがおかしくなるという話をききました。
現象としては、'donwload.csv'
というように、シングルクォーテーションがついてきてしまうという現象でした。
実際に試してみると、自分が使っている最新のchromeでも確かにその現象が起きていました。
ちなみに試したのはmacのchromeで、バージョン 72.0.3626.109 になります。
コード
上記の現象が起きたコードはこんな感じのコードでした。
public function download($fileSize, $contentType, $downloadName) { header("Content-Type: {$contentType}"); header("Content-Length: {$fileSize}"); header("Content-Disposition: attachment; filename='{$downloadName}'"); readfile($filePath); }
headerのコードのfilenameの部分をシングルクォーテーションで囲んでいる部分が問題のようでした。
該当のコードを
header("Content-Disposition: attachment; filename=\"{$downloadName}\"");
のようにダブルクォートで囲うようにするか、そもそもクォーテーションで囲わなければ同現象がおきているchromeでも問題なくdownloadできました。
chrome singlequote download
とかでググると、同現象と同じ現象かな?と思える物が見つかりました。
こちらでは、とりあえずEdgeか古いバージョン使えと書いていました...
何か他に情報あれば教えてください。