質問

IISを使用してアップロードしたWebアプリケーションがあります。アプリケーションを使用しているユーザーが、(ユーザー)コンピューターにあるファイルを選択して、そのコンテンツを読み取ることができます。

コードは次のとおりです。

TextReader trs = new StreamReader(faFile.Value);
            DataAccessLayer.clearFA();
            string line = trs.ReadLine();
            // Read all unneeded data 
            while (line != "** Start Data **")
            {
                line = trs.ReadLine();
            }
            line = trs.ReadLine();
            while (line != null)
            {
                string[] words = line.Split('*');
                // There is no message
                if (words[4] == "")
                {
                    DataAccessLayer.insertIntoFA(Int32.Parse(words[1]), words[3].Replace("'", ""));
                }
                else
                {
                    DataAccessLayer.insertIntoFA(Int32.Parse(words[1]), words[4].Replace("'", ""));
                }
                line = trs.ReadLine();
            }         
        }

PCから実行すると機能します。しかし、IISから実行しようとすると、次のエラーが得られます。

Could not find a part of the path 'C:\Documents and Settings\myUser\Desktop\file.txt'. 

アプリケーションがユーザーPCからファイルを読み取ることができないことを理解しています。どうすればそれを機能させることができますか?

ありがとう!

グレッグ

役に立ちましたか?

解決

これはセキュリティ上の理由で行われます - ブラウザはユーザーのファイルシステムにアクセスできません。

ブラウザ内で実行されている他のすべてのテクノロジーがサンドボックスで制限されているため、これを回避する方法はありません(再び、セキュリティ上の理由から)。

あなたが得ることができる最も近いのは、Anを使用することです <input type="file"> これにより、ユーザーはアップロード用のファイルを選択できます。

他のヒント

IE 8のアップロードファイルのパスはフルパスです。フルネームからファイル名を取得できます。ファイルを保存する前に、サーバーパスとファイル名を組み合わせます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top