1

Ruby on Rails サーバーからファイルをダウンロードできるように、Chrome 拡張機能を接続したいと考えています。特に、ユーザーが拡張機能のボタンをクリックすると、拡張機能は AJAX 要求をサーバーに送信し、サーバーはファイルfile.zipをユーザーに送り返す必要があります。

サーバーはどのようにしてファイルをユーザーの拡張子に送り返しますか?

4

1 に答える 1

1

Rails 側で、返されたContent-Typeヘッダーがであることを確認しapplication/zipます。#send_fileまたはを使用#send_dataして、zip ファイルをクライアントに送信できます。ActionController::DataStreamingを参照してください

使用する#send_file

send_file '/path/to.zip', :type => 'application/zip'

または使用#send_data

zip_data = generate_zip_data()
send_data zip_data, :type => 'application/zip', :filename => 'data.zip'

動的 zip ファイルの生成については、他のトピックを参照してください。

Google Chrome 拡張機能では、zip ファイルの URL を含む新しいタブを作成することができます。これにより、ブラウザがファイルをダウンロードします。

function buttonClickHandler() {
    chrome.tabs.create({ url: "the url to zip file"}, function() {});
}
于 2012-11-05T09:53:43.500 に答える