- PR -

ファイルアップロード時のエラーについて

1
投稿者投稿内容
Hiro
会議室デビュー日: 2002/03/29
投稿数: 18
投稿日時: 2003-04-10 20:13
Hiroといいます。
いつもお世話になります。
ASP.NETファイルのアップロードについて教えてください。
現在、クライアントからファイルをアップロードして
SQL Serverに保存するプログラムを作成しています。
アップロードされたバイナリデータの取得には
以下のコードで行っています。
=====================================================================
FileStream Fs = new FileStream(File1.PostedFile.FileName,
FileMode.OpenOrCreate,FileAccess.Read); <== ここでエラーがでます
Tehai.FILE1 = new Byte[Fs.Length];
Fs.Read(Tehai.FILE1,0,Convert.ToInt32(Fs.Length));
Fs.Close();
======================================================================
上記の部分でエラーが発生し、エラー内容は
パス "C:\Lotus\1E7D0001.TIF" の一部が見つかりませんでした。
説明 : 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。

例外の詳細: System.IO.DirectoryNotFoundException: パス "C:\Lotus\1E7D0001.TIF" の一部が見つかりませんでした。
=======================================================================
作業用のWin2000SP3(FAT32)ではうまく動作するのですが、
本番サーバーWin2000SP3(NTFS)でこのようなエラーがでます。
セキュリティにASPNETユーザーを登録してフルアクセスにしています。
このような場合、どのような手段が考えられるのでしょうか?
御教示お願いします。
聖人@SKB
ベテラン
会議室デビュー日: 2003/03/26
投稿数: 58
お住まい・勤務地: 横浜(MM21)勤務の筈だがいつも顧客先常駐
投稿日時: 2003-04-11 12:33
System.IO.FileStreamではなく,System.IO.Streamを使用してみては如何でしょう。

System.IO.Stream fs = File1.PostedFile.InputStream;
Byte rec[] = new Byte[fs.Length];
fs.Read(rec, 0, Convert.ToInt32(fs.Length);
fs.Close();

ヘルプのHtmlInputFileクラス,HttpPostedFile.InputStreamプロパティを
参照するとクライアントで指定したファイルへのアクセス等が理解できます。
Hiro
会議室デビュー日: 2002/03/29
投稿数: 18
投稿日時: 2003-04-14 09:21
聖人さんレスありがとうございました。
うまく動作しました。
今後ともよろしくお願いします。

1

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