[前][次][番号順一覧][スレッド一覧]

rails:2462

From: someeda <someeda@g...>
Date: Fri, 23 Nov 2007 17:16:38 +0900
Subject: [rails:2462] Re: バイナリの画像データを HTML 上に表示する方法

そめえだ、です。


> ここで質問は、画像が表示されるものの、sessionで
> 値を引き渡すのが、強引な気がしてならないのです。
> もう少しスマートなやり方はないものでしょうか。

良く見るのはファイルとしてサーバに保存するか、DBに登録してしまうかです。
要件にもよりますが何も考えないなら、とりあえずDBかな?

小堀さんの様にsessionに画像を読み込むのも、場合によっては
悪くないかもしれません。
その場合sessionがどこに保存されるのか意識してから決めたい所です。


> sessionで、@picまるごと指定したら、
> 「We're sorry, but something went wrong.」
> と出てしまいました。構造体はsessionで渡せない?
> 実態はcookieだから渡せないということでしょうか。

@picがファイルオブジェクトを含んでいるからです。
sessionはRubyのMarshal.dumpを使うので、Marshal.dumpの制限に影響されます。
http://www.ruby-lang.org/ja/man/?cmd=view;name=Marshal

できたらトラブルを避けるため、単純な文字列や数値以外は
sessionにいれない方が無難でしょうね。


cookieはどのsessionデータを使うべきか、Railsが識別するため使っています。
sessionに何を登録しても、cookieに直接データが登録されたりはしません。
sessionはサーバ側に保存されます。




On Nov 23, 2007 10:06 AM, makoto kobori <kobori@c...> wrote:
> はじめまして。小堀と申します。
>
> 昨日違うメアドで送ったのですがうまく配送されてないみたいなので
> メアドを変えて登録させていただきました。
>
> 過去ログにもありますが、バイナリの画像データをHTML上
> に表示させる方法で質問です。
>
> 具体的には
> �.▲奪廛蹇璽媛萍未妊罅璽兇�jpegをuploadする。
> ��確認画面でアップロードされた画像を確認
> ��DB登録
>
> という流れを作りたいのです。
>
> 実装は
> �� <%= file_field "file", "picture" %>
> でビューを作ってアクションを呼び出します。
>
> ��呼び出したアクションは以下。sessionで画像のデータを
> 引き渡します。
> ------------------------------------------
> @pic=params[:file]['picture']
> session[:pic1_name]=@pic.original_filename
> session[:pic1_ct] = @pic.content_type
> session[:pic1_data] = @pic.read
> ------------------------------------------
>
> このアクションに対応するビューが以下
> ------------------------------------------
> <h1>Upload#view</h1>
>
> title:<%= @title %><br>
>
> <%=image_tag(url_for(:action=> 'draw',:extension=>'.jpg'))
> %>
>
> ------------------------------------------
>
> url_forで呼び出しているアクションdrawが以下です。
>
> ------------------------------------------
> send_data session[:pic1_data],
> :filename => session[:pic1_name],
> :type => session[:pic1_ct],
> :disposition => 'inline'
> ------------------------------------------
>
> ここで質問は、画像が表示されるものの、sessionで
> 値を引き渡すのが、強引な気がしてならないのです。
> もう少しスマートなやり方はないものでしょうか。
>
> sessionで、@picまるごと指定したら、
> 「We're sorry, but something went wrong.」
> と出てしまいました。構造体はsessionで渡せない?
> 実態はcookieだから渡せないということでしょうか。
>
> 何かよいアドバイスがございましたら、ご指導お願いします。
>
>
> --
> ML: rails@r...
> 使い方: http://QuickML.com/
>



-- 
---------------------------
そめえだ
http://d.hatena.ne.jp/someeda/
someeda@g...

--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      2460 2007-11-23 02:06 [kobori@c...         ] バイナリの画像データを HTML 上に表示する方法 
->    2462 2007-11-23 09:16 ┗[someeda@g...        ]                                       
      2463 2007-11-24 02:29  ┗[kobori@c...         ]