- PR -

一時的な画像ファイルの格納場所について

投稿者投稿内容
ani
常連さん
会議室デビュー日: 2007/05/17
投稿数: 44
投稿日時: 2007-10-02 22:17
連続の質問、失礼します。
クライアントからアップロードされた一時的な画像ファイルの格納場所が分からなくて困っています。

クライアント側で画像ファイルをアップロードしたら、サーバーの一時的なエリアに格納し、
クライアントにプレビューとして表示させたいのですが、その際の一時ファイルはどこに格納するのがよいのでしょうか?
今、「Path.GetTempFileName」で得られたファイル名でサーバーのテンポラリエリアに格納しようとしたのですが、
セキュリティ上の問題かうまくいきませんでした。
この画像ファイルは一時的なものなので、ユーザーが処理を中断したら削除しなければなりません。
こういったファイルもWebサイト以下に格納するものなのでしょうか?
ご教示下さい。

<環境>
Windows Server 2003, Visual Studio 2005 SP1 (C#), .NET Framework 2.0
IIJIMAS
ベテラン
会議室デビュー日: 2006/12/06
投稿数: 77
投稿日時: 2007-10-02 23:49
@ITのサイトに
「[ASP.NET]ブラウザからファイルをアップロードできるようにするには?」
http://www.atmarkit.co.jp/fdotnet/dotnettips/321uploadform/uploadform.html
というページがありますので、ご参照されみてはいかがでしょうか。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2007-10-02 23:55
認証はどのような方式を使用していますか?
_________________
ani
常連さん
会議室デビュー日: 2007/05/17
投稿数: 44
投稿日時: 2007-10-03 09:33
IIJIMASさん、レスありがとうございます。

引用:

IIJIMASさんの書き込み (2007-10-02 23:49) より:
@ITのサイトに
「[ASP.NET]ブラウザからファイルをアップロードできるようにするには?」
http://www.atmarkit.co.jp/fdotnet/dotnettips/321uploadform/uploadform.html
というページがありますので、ご参照されみてはいかがでしょうか。



サイト、参照させていただきました。
ストリームを使用すればテンポラリエリアに保存しなくてもクライアントに画像を表示できるようですが、
1つ気になった点があるので追加で質問させて下さい。
ストリームで読み出し後にそれをファイルとして保存した場合、アップロードされたファイルと全く同じものとなるのでしょうか?
クライアントでアップロード後に登録処理が実行された場合には、その画像を他の画面で使用するためファイル形式で保存したいのです。
ちなみに、データベースの構成は変更できないため、ファイルをデータベースに格納することはできません。

ご教示下さい。
ani
常連さん
会議室デビュー日: 2007/05/17
投稿数: 44
投稿日時: 2007-10-03 09:35
ちゃっぴさん、レスありがとうございます。

引用:

ちゃっぴさんの書き込み (2007-10-02 23:55) より:
認証はどのような方式を使用していますか?




フォーム認証を使用しています。
IIJIMAS
ベテラン
会議室デビュー日: 2006/12/06
投稿数: 77
投稿日時: 2007-10-03 09:54
引用:

aniさんの書き込み (2007-10-03 09:33) より:

ストリームで読み出し後にそれをファイルとして保存した場合、アップロードされたファイルと全く同じものとなるのでしょうか?
クライアントでアップロード後に登録処理が実行された場合には、その画像を他の画面で使用するためファイル形式で保存したいのです。


普通に、同じになると思いますが…
なぜ、気になったのでしょうか…。
ani
常連さん
会議室デビュー日: 2007/05/17
投稿数: 44
投稿日時: 2007-10-03 10:04
IIJIMASさん、再度のレスありがとうございます。

引用:

IIJIMASさんの書き込み (2007-10-03 09:54) より:
引用:

aniさんの書き込み (2007-10-03 09:33) より:

ストリームで読み出し後にそれをファイルとして保存した場合、アップロードされたファイルと全く同じものとなるのでしょうか?
クライアントでアップロード後に登録処理が実行された場合には、その画像を他の画面で使用するためファイル形式で保存したいのです。


普通に、同じになると思いますが…
なぜ、気になったのでしょうか…。



そうですよね
普通に考えれば同じになりますよね。
ストリームで読み出した後、ファイルを再構築する際にデータの欠落などが起こらないか心配だったもので。
(ストリームをいまいち理解していません・・・)

ありがとうございました。

ちなみに手順的には以下のようになるのでしょうか?

1.ファイルアップロード
2.ストリームで読み出し
3.画像表示用ページで画像データを出力
http://www.microsoft.com/japan/msdn/asp.net/tips/DataBaseImage2/
4.プレビュー画面のImageオブジェクトのImageUrlに「3.」のページを指定
IIJIMAS
ベテラン
会議室デビュー日: 2006/12/06
投稿数: 77
投稿日時: 2007-10-03 10:19
引用:

aniさんの書き込み (2007-10-03 10:04) より:
ちなみに手順的には以下のようになるのでしょうか?

1.ファイルアップロード
2.ストリームで読み出し
3.画像表示用ページで画像データを出力
http://www.microsoft.com/japan/msdn/asp.net/tips/DataBaseImage2/
4.プレビュー画面のImageオブジェクトのImageUrlに「3.」のページを指定



それでよいと思いますが…
わざわざ、掲示板で質問する理由がよくわかりません…
まずはVisual Studio 2005が手元にあるなら実際にやってみてください。

そこで何か問題・疑問がおきたとき、MSDNライブラリや検索やTipsサイトで調べていろいろ試行錯誤して、どうしてもわからないなら、掲示板に質問を投稿してください。
その際、最初の投稿で問題の環境や状況(どこまでは自分で調べたとか)、再現手順などをできるだけ具体的に書くと適切な回答が早くつきやすいと思います。

スキルアップ/キャリアアップ(JOB@IT)