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