流通過AJAX來自HTML表單var jqXHR = data.submit();
的OpenXML無法打開包,因爲的FileMode或FileAccess的值是無效的流
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);
}
}
我得到這個錯誤:
Cannot open package because FileMode or FileAccess value is not valid for the stream.
我谷歌無法打開包,因爲FileMode或FileAccess值對於流無效,但找不到任何有用的內容。有任何想法嗎? PS:最初我簡化了要發佈到這裏的代碼。增加了if語句,以便消除Sten Petrov的擔憂。我希望Request.File.count> 0確實解決他的關心......我仍然有同樣的問題...
UPDATE
作爲一個工作,我身邊跟着下面的意見和文件保存到一個目錄然後我用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);
希望你得到了什麼我做了有問題的未來人們的觀念。
我會研究這個可能的解決方案。因爲知道我做了彼得羅夫推薦的東西。 – hidden