1

つまり、ダウンロード ヘルパーに問題があります。基本的に、pdf の請求書と pdf の証明を動的に作成するサイトを構築しました。IE では毎回失敗し、次のエラーが表示されます: mysite.com から $filename をダウンロードできません

このインターネット サイトを開くことができません。要求されたサイトは利用できないか、見つかりません。後でもう一度やり直してください。

force_download を開始するために、次のコントローラーに向ける URL を持つアンカー target _blank があります。

        function view_uploaded_file($order = 0, $name = NULL){

        $this->load->helper('directory');

        $params['where'] = array('id' => id_clean($order));

        $data['order'] = $this->MOrders->get($params);

        if($data['order']->id < 1){

            redirect('admin/orders');

        }

        $name = db_clean(urldecode($name));

        $map = directory_map('./uploads/customer_order_uploads/'.$data['order']->user_id.'/'.$data['order']->id, 1);

        if(is_array($map) && in_array($name, $map)){

            $this->load->helper('download');

            $data = file_get_contents('./uploads/customer_order_uploads/'.$data['order']->user_id.'/'.$data['order']->id.'/'.urldecode($name));

            force_download($name, $data);

        } else {

            redirect('admin/orders');

        }

    }

当初は MY IE に問題があるのではないかと思っていましたが、他のサイトで PDF をダウンロードできます。その後、codeigniters ダウンロード ヘルパーに問題がある可能性があると考えましたが、ヘルパーで IE 用の特別な規定が既に作成されているようです。

何かアイデアがあれば教えてください。ありがとうございました。

4

2 に答える 2

2

率直に言って、コード イグナイターでダウンロード用のヘルパーを使用した理由がわかりません。

純粋なphpで行うのはまったく難しいことではありません:

This Wonderful Question/Answerは、それを非常にうまく行う方法を概説しています。

覚えておくべき本当のことはcontent-disposition: attachment、ヘッダーの部分です。これは、ファイルをダウンロードして保存する必要があることと、ブラウザに表示しようとすることをブラウザに伝えるものです。

すべてのブラウザーで処理が異なります。おそらく、IE のインストールに動作を上書きする何かがあるかもしれませんが、リンクされた記事の指示に従うと、すべてのブラウザーでファイルが正しくダウンロードされるはずです。

基本的に、ブラウザに伝える必要があるのは次の 3 つです。

  • コンテンツ タイプ
  • ファイル名
  • 受信データの処理方法
  • (お持ちの場合はオプションの 4 番目) ファイル サイズ(Content-Length)

次に、そのデータを出力バッファーに直接ダンプします。

応答

あなたの返信に応えて、ポップアップ ウィンドウで何かを自動的にダウンロードしないのはおそらくセキュリティ機能であり、おそらく以前のセキュリティ ホールに対処するために IE が導入した新しい機能の 1 つです。

于 2011-02-25T01:44:38.357 に答える
1

さて、私は問題の少なくとも一時的な修正を見つけました。強制ダウンロード用のすべてのリンクはターゲット_blank..でした。ファイルのダウンロードがIEで機能する標準の非ポップアウトリンクを作成すると、おそらく何らかの回避策がありますが、とにかくダウンロードするためのポップアップウィンドウは本当に必要ないことにも気づきました。ダウンロードダイアログボックスはすでにその目的を果たしています。

于 2011-02-25T04:40:16.370 に答える