rails:2463
From: makoto kobori <kobori@c...>
Date: Sat, 24 Nov 2007 10:29:56 +0900
Subject: [rails:2463] Re: バイナリの画像データを HTML 上に表示する方法
こぼりです ありがとうございます。そめえだ様。 >①アップロード画面でユーザがjpegをuploadする。 >②確認画面でアップロードされた画像を確認 >③DB登録 ②でFileIOを気にして、仮DB登録や、ファイル保存をやめようと思ってましたが、 sessionでファイルIOが発生するんですね。ならば、 仮DB登録しても、あまり変わらないかな、と思いました。 それでトラブルも避けられるならば・・ ありがとうございました。 someeda さんは書きました: > そめえだ、です。 > > > >> ここで質問は、画像が表示されるものの、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/ >> >> > > > > -- 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... ]