从Chrome扩展程序中的服务器接收文件

时间:2012-11-05 02:30:16

标签: ruby-on-rails google-chrome google-chrome-extension

我想连接我的Chrome扩展程序,以便能够从我的Ruby on Rails服务器下载文件。特别是,当用户单击扩展上的按钮时,扩展应该向服务器发送AJAX请求,然后服务器应该将文件file.zip发送回用户。

服务器如何将文件发送回用户的扩展名?

1 个答案:

答案 0 :(得分: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文件网址创建新标签页。这会导致浏览器下载文件。

function buttonClickHandler() {
    chrome.tabs.create({ url: "the url to zip file"}, function() {});
}