2012-01-16 5 views
0

私はdojoとjavascriptを使用してアプリケーションを作成しています。私のアプリケーションには、ファイルメニューがあります。ファイル>>名前を付けて保存メニュー項目をクリックすると、名前を付けて保存ダイアログボックスがポップアップ表示されます。別の名前で保存ダイアログボックスが表示されないfirefox.itsを使用しています。あなたはどのようなサーバーサイド言語は、あなたが言っていないので、これは、あなたがダウンロードしたいファイルのMIMEタイプとContent-Dispositionヘッダーを設定する必要があるとして、サーバーサイドを処理する必要がplsはFirefoxで別名で保存ダイアログボックスを表示

+0

コードを共有できますか? – Unknown

答えて

1

に私を助けて

誰でも私はPHPで次の例を提供していますが、サーバーサイドの言語であれば、同じことをすることができます。これにより、クライアントはファイルをダウンロードし、特定の場所に自動的にダウンロードしないようにブラウザが設定されている場合は、「名前を付けて保存」ポップアップウィンドウが表示されます。

// make sure it's a file before doing anything! 
if(is_file($file_name)) 
{ 

    /* 
    Do any processing you'd like here: 
     1. Increment a counter 
     2. Do something with the DB 
    3. Check user permissions 
     4. Anything you want! 
    */ 

    // required for IE 
    if(ini_get('zlib.output_compression')) { ini_set('zlib.output_compression', 'Off'); } 

    // get the file mime type using the file extension 
    switch(strtolower(substr(strrchr($file_name,'.'),1))) 
    { 
     case 'pdf': $mime = 'application/pdf'; break; 
     case 'zip': $mime = 'application/zip'; break; 
     case 'jpeg': 
     case 'jpg': $mime = 'image/jpg'; break; 
     default: $mime = 'application/force-download'; 
    } 
    header('Pragma: public'); // required 
    header('Expires: 0');  // no cache 
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
    header('Last-Modified: '.gmdate ('D, d M Y H:i:s', filemtime ($file_name)).' GMT'); 
    header('Cache-Control: private',false); 
    header('Content-Type: '.$mime); 
    header('Content-Disposition: attachment; filename="'.basename($file_name).'"'); 
    header('Content-Transfer-Encoding: binary'); 
    header('Content-Length: '.filesize($file_name)); // provide file size 
    header('Connection: close'); 
    readfile($file_name);  // push it out 
    exit(); 

} 
関連する問題