1

ユーザーが参照してアップロードボタンを押すファイルがあり、ファイルをサーバーに保存し、アプリケーションディレクトリに appdata/uploads を保存します。次に、ストリームリーダーを使用して読み取ってから解析しようとします。私のローカル開発環境では問題なく動作しますが、サーバーにデプロイするとまったく動作しません。助言がありますか??ありがとうございました

//Save LoadList File:
            DateTime uploadDate = DateTime.Now;
            string destinationPath = string.Format("{0}\\{1}\\{2}\\{3}\\", Server.MapPath("~/App_Data/uploads"), uploadDate.ToString("yyyy"), uploadDate.ToString("MMM"), uploadDate.ToString("dd"));
              if (!Directory.Exists(destinationPath))
                    Directory.CreateDirectory(destinationPath);

              string storedFileName = string.Format("{0}{1}.json", destinationPath, System.Guid.NewGuid());
                file.ElementAt(0).SaveAs(storedFileName);

           //FileImport is a static class
          var Pair = FileImport.CyclesCompleted(storedFileName);





           private static string LoadTextFromFile(string fileName)
                {
                    StreamReader streamReader = new StreamReader(fileName);
                    string text = streamReader.ReadToEnd();
                    streamReader.Close();
                    return text;
                }
4

1 に答える 1

0

ほとんどのアカウントはサーバー上のデフォルトの場所に書き込むことができないため、サーバーにファイルを保存すると、通常はアクセス許可エラーが発生します。Path.GetTempFileNameを使用して回避することもできますが、この場合でも、一部のアカウント (つまり、「匿名ユーザー」に対して実行を要求するアカウント) には、その場所への読み取り/書き込みのアクセス許可がありません。

アップロードされたファイルを単に解析する必要がある場合は、ストリームを MemoryStream にコピーし、このメモリ ストリームに対して StreamReader を作成できます。アップロードされたファイルに Stream を直接使用できる場合がありますが、シークはサポートされません (シークしない StreamReader を使用しているため、機能する場合があります)。

于 2012-06-25T02:01:32.837 に答える