2011-07-06 3 views
0

asp.net 사용 다음에 표시 할 MS office 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 문서를 읽는 것입니다 두려워하지만, 실제로 바이너리 파일입니다

당신이 취해야 할 접근법은 관리되는 Word 라이브러리 Microsoft.Office.Tools.Word 또는 Word COM 개체를 사용하여 파일을 열고 HTML로 저장하는 것입니다. 이렇게하면 Word에서 자체 파일 형식으로 디코딩하는 매우 더러운 세부 정보를 처리 할 수 ​​있습니다.

Here is the MSDN documentationDocument.SaveAshere is a simple COM example에 대해.

+0

대단히 감사합니다. 존. 나는 네가 옳다고 믿는다. 나는 그것을 어떻게하는지 이해할 것이다. – JaneH

관련 문제