ストリームは、ajax を介して html フォームから取得されますvar jqXHR = data.submit();
public static GetWordPlainText(Stream readStream,string filePath)
{
WordprocessingDocument.Open(readStream, readStream.CanRead);
}
[HttpPost]
public ActionResult FileUpload()
{
var MyFile = Request.Files[0];
if (Request.Files.Count > 0 && MyFile != null)
{
GetWordPlainText(Request.InputStream);
}
}
次のエラーが表示されます。
FileMode または FileAccess の値がストリームに対して有効でないため、パッケージを開くことができません。
FileModeまたは FileAccess の値がストリームに対して有効ではないため、パッケージを開くことができませんが、有用なものが見つかりません。何か案は?
PS: 最初に、ここに掲載するコードを大幅に簡略化しました。Sten Petrov による懸念を解消するために、if ステートメントを追加しました。Request.File.count>0 が彼の懸念に対処することを願っています...私はまだ同じ問題を抱えています...
アップデート
回避策として、以下のアドバイスに従い、ファイルをディレクトリに保存してから、openxmlを使用してディレクトリから読み取ります
var MyFile = Request.Files[0];
var path = Path.Combine(Server.MapPath("~/App_Data/temp"), MyFile.FileName);
using (MemoryStream ms = new MemoryStream())
{
//if file exist plz!!!! TODO
Request.Files[0].InputStream.CopyTo(ms);
System.IO.File.WriteAllBytes(path, ms.ToArray());
}
次にWordprocessingDocument.Open
、ファイルパスの実装があり
WordprocessingDocument.Open(path);
ますので、問題を抱えている将来の人々のために私が何をしたかを理解していただければ幸いです。