2016-04-18 13 views
1

Ich habe eine Controller-Aktion wie unten. Die Idee besteht darin, den Download zu erzwingen anstatt ihn im Browser anzuzeigen. Es funktioniert ziemlich gut auf dem Desktop sowohl Chrome, Firefox und ie. Auf Chrome Mobile iOS funktioniert es jedoch überhaupt nicht. Übrigens ist die Datei sehr klein, also habe ich über #send_data.Schienen wie erzwingen Download auf Chrom ios

def download 
    @attachment = current_listing.attachments.find(params[:id].to_i) 

    url = URI.escape(@attachment.url) 
    data = open(url).read 

    send_data data, type: 'application/octet-stream', disposition: 'attachment', filename: @attachment.file_name 
end 

Antwort

2

Nach der offiziellen Rails 4 Dokumentation für ActionController::DataStream.send_data

die einzigen verfügbaren Werte für die Disposition Schlüssel sind: ‚Befestigung‘ und ‚inline‘ mit Anhang, wie es Standard ist.

Auch die Anwendung/Octet-Stream ist standardmäßig eingestellt.

Der Befehl:

send_data data, filename: @attachment.file_name 

Sollte

+0

Dank genügen, es war meine Tippfehler. Ich habe es bereits auf 'attachment' gesetzt, funktioniert aber immer noch nicht auf chrome mobile. – Chamnap

Verwandte Themen