2011-07-06 104 views
0

使用asp.net我想保存MS辦公室WORD.DOC的用戶上傳或word.docx文件隨後的顯示。我對抓取上傳文件的InputStream的,循環直通其與一個StreamReader,然後將其保存到與StreamWriter的一個文件中的代碼,但結果是,有很多討厭的人物一塌糊塗,即使它說,這是UTF8編碼。使用streamwriter,是否可以從word.doc創建一個html文件?

有什麼我可以用我的編碼建立字符串做的 - 或別的東西 - 這將這樣的伎倆?

另一種方法是在上傳WORD.DOC編程方式保存爲HTML文件,如果任何人對如何做到這一點的任何想法。

這裏是我的相關代碼:(!在DOCX的情況下pkzipped)

Dim htmlfile As String = Server.MapPath("drafts" & "/d" & draftID & ".html") 
Dim strm As Stream = fileup1.PostedFile.InputStream 
Dim sb As String = "" 
Using sr As New StreamReader(strm) 
    Dim line As String = "" 
    While Not line Is Nothing 

     line = sr.ReadLine() 
     sb += line & "<br />" 
    End While 
End Using 

Dim sw As StreamWriter = New StreamWriter(htmlfile) 
    sw.Write(sb) 

回答

1

恐怕你的方法是閱讀Word文檔另存爲文本文件,但它們實際上是二進制文件

你應該採取的方法是使用管理詞庫Microsoft.Office.Tools.Word或單詞COM對象打開該文件,並保存爲HTML。這樣,你就可以讓Word處理解碼自己文件格式的非常骯髒的細節。

Here is the MSDN documentation對於Document.SaveAshere is a simple COM example

+0

非常感謝你,約翰。我相信你是對的。我會弄清楚如何做到這一點。 – JaneH

相關問題