2

ファイルを img/upload フォルダーに保存すると、ファイルは正しいファイル拡張子で保存されます。

ただし、ファイルをダウンロードしようとすると、.htm ファイル拡張子が追加されます。

どうすればこれを回避できますか? 以下にコードを追加しました。

view.ctp

<?php echo $this->Form->label("Resume:");?> 
      <?php echo $this->Form->input("resume",array("class"=>"input_boxstyle_select","label"=>"","type"=>"file","id"=>"file"));?> 
      <a href="../download_resume/<?php echo $editEmpPros[0]['prospective_employee']['resume']?>" style="margin-left:140px;color:#0477CA;"> <?php echo $editEmpPros[0]['prospective_employee']['resume']?> </a> 

私のコントローラー内:

public function download_resume($id=null)
{
    $LUser = $this->Session->read('username');  
    $this->disableCache(); 
    if (!$LUser) {
        $this->redirect(array("action"=>"../"));                 
    }

    $path="../webroot/img/upload/$id";
    header('Content-Disposition: attachment'); readfile($path);
    //print_r(readfile($path));
    exit;
}
4

4 に答える 4

2

次のように、Content-Disposition ヘッダーにもファイル名を指定できます。

Content-Disposition: attachment; filename="foo.bar"
于 2013-05-03T08:37:58.987 に答える
1

サポートする必要があるブラウザーによっては、downloadHTML5 の属性を使用することもできます。

<a href="/path-to-your-file" download="your-desired-filename">my link</a>
于 2013-05-03T15:08:30.583 に答える