ユーザーがダウンロードしたファイルを保存できる機能を開発しています。ユーザーがファイルを保存するターゲットの場所/フォルダーを選択できるポップアップを取得するのに苦労しています。これはレールを使用して達成できますか?
4 に答える
あなたが探していると思いますsend_file
- とても使いやすいです。
ダウンロードファイルオプションが必要だと思います。たとえば、ユーザーに zip ファイル コードをダウンロードしてもらいたい URL にアクセスすると、次のようなことができます。
class MyController < ApplicationController
def downloadzip
send_file "path_to_file", :type=>"application/zip"
end
end
ユーザーに返すコンテンツタイプと同様のヘッダーに依存すると思います。次のようなものを返してみてください:
header('Content-disposition: attachment; filename=movie.mpg'); header('Content-type: ビデオ/mpeg');
編集:ヘッダーを生成し、HTTP でユーザーにファイルを返すことができると仮定しています (ファイルへの単純なリンクはありません)。
クライアントが特定の場所にファイルを保存できるようにするファイルブラウザダイアログボックスのようなものを提供しようとしていると思います。
サーバーからこれを提供しようとしている場合は、ブラウザ メーカーがクライアントのセキュリティを確保するために適用したセキュリティ制限のため、それは不可能であると言わざるを得ません。
もう 1 つの方法は、基本的にクライアントのマシンを制御するブラウザ プラグイン/activeX コントロールをクライアントにダウンロードさせることです。
これがないと、クライアントによってダウンロードされたファイルタイプがブラウザによって(ヘッダーに基づいて)識別され、ファイル保存ダイアログボックスが自動的に開き、クライアントの安全な領域に入ることができないと思います。