質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

1292閲覧

Rails html 画像のダウンロードリンクをiphoneでタップ後safariのブラウザバックの挙動がおかしい

lyzmfeqpxs54

総合スコア237

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

iPhone

iPhoneとは、アップル社が開発・販売しているスマートフォンです。 同社のデジタルオーディオプレーヤーiPodの機能、電話機能、インターネットやメールなどのWeb通信機能の3つをドッキングした機器です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2019/03/29 07:20

いつもお世話になっております。

現在以下のよう形で画像のダウンロードリンクを表示しています。
これをiPhoneで保存しようとする場合についてなのですが、まずダウンロードリンクをクリックすると、画像が表示されます(この画像を名前を付けて保存してもらうことでiPhoneのダウンロード手順としています)。

その後、safariのブラウザバックを押すと一度リンクがあった画面に戻る画面が表示されるのですが操作はできず、すぐにもう一度画像が表示された画面となってしまいます。さらに、その後にブラウザバックをすると、そのリンクがあったページの一個前のページに戻ってしまいます。

まとめますと

  1. ページAからページB(下記コードのダウンロードリンクがある)へ行く
  2. ページBのダウンロードをタップ
  3. 画像が表示される
  4. ブラウザバックをする
  5. 一瞬ページBが表示され、再び画像が表示
  6. 再びブラウザバックでページAが表示

という流れです。
どこに問題があると考えるのが妥当でしょうか。
ご教示いただけますと幸いです。

よろしくお願いいたします。

Ruby

1 2xxx.html.erb 3<%= link_to 'ダウンロード', "/xxx/xxx/dl", class: "file_dl" %> 4 5html表示 6<a class="file_dl" href="/xxx/xxx/dl">ダウンロード</a> 7 8 9コントローラー側 10 11 def download 12 filepath = Rails.root.join("/home/xxx/xxx") 13 stat = File::stat(filepath) 14 send_file(filepath, :filename => "file.#{params[:ext]}", :length => stat.size) 15 end 16

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2019/03/29 08:31

Turbolinksは有効ですか、無効ですか?
guest

回答1

0

def download filepath = Rails.root.join("/home/xxx/xxx") stat = File::stat(filepath) send_file(filepath, :filename => "file.#{params[:ext]}", :length => stat.size) end

こちらの部分ですが、見たところパラメータが送られていませんので、以下を記述してみるのが良いと思います。後、ビューを見せる時はimage_tagなどがあると思いますので、そちらも見せた方が回答がくるのが早いと思います。

def download @image = Image.find(params[:id]) #ここではimageモデルがあると勝手に定義しました。 filepath = Rails.root.join("/home/xxx/xxx") stat = File::stat(filepath) send_file(filepath, :filename => "file.#{params[:ext]}", :length => stat.size) end

また、こちらのサイトがわかりやすかったので、よかったら参考にして見てください。filepathも.current_pathを用いた方がメンテのコストが抑えられて良いかもです。
https://qiita.com/ryuchan00/items/45b05ed70bdc7f41a8a1

投稿2019/04/07 16:13

bamboo-nova

総合スコア1408

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問