首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

vb.net操作world,将world转化为html.小弟我在从本地启动是可以的,用iis启动就不行了,客户访问也不行,请赐教!

2013-08-04 
vb.net操作world,将world转化为html.我在从本地启动是可以的,用iis启动就不行了,客户访问也不行,请大虾赐

vb.net操作world,将world转化为html.我在从本地启动是可以的,用iis启动就不行了,客户访问也不行,请大虾赐教!!!!!!
Imports System.Web
Imports System.Web.Services
Imports System.IO
Imports System.Drawing
Imports Microsoft.Office.Interop.Word
Imports Microsoft.Office.Interop


Public Class uploadFileShow
    Implements System.Web.IHttpHandler

    Private Property Word As Object

    Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
        'Dim image, image16 As Image
        'Dim callb As System.Drawing.Image.GetThumbnailImageAbort = Nothing

        context.Response.ContentType = "text/plain"
        Dim file As HttpPostedFile = context.Request.Files.Get("Filedata")

        Dim uploadPath As String = HttpContext.Current.Server.MapPath(context.Request("folder")) & ""
        If Not file Is Nothing Then

            If Not (Directory.Exists(uploadPath)) Then

                Directory.CreateDirectory(uploadPath)
            End If
            Dim picName As String = GetFileName()
            Dim picHtml As String = picName + ".html"
            Dim uploadPathHtml As String = uploadPath
            uploadPathHtml += picHtml
            Dim extension As String = System.IO.Path.GetExtension(file.FileName)

            picName += extension
            uploadPath += picName
            file.SaveAs(uploadPath)
            'Dim wordApp As New Word.ApplicationClass
            ' 定义Word对象()


            ' Dim wordApp As New Word.ApplicationClass
            ' 要转换的文件名()
            ' Dim fileName As Object = uploadPath
            ' 默认值()
            ' Dim miss As Object = System.Reflection.Missing.Value
            ' 打开要转换的 DOC 文件  
            ' Dim doc As Word.Document = DirectCast(wordApp.Documents.Open(fileName, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss), Word.Document)
            ' 转换后的文件名()
            ' fileName = uploadPathHtml
            ' 保存的文件格式()
            ' Dim saveFormat As Object = Word.WdSaveFormat.wdFormatHTML
            ' 按文本文件保存()
            ' doc.SaveAs(fileName, saveFormat, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss, miss)
            ' 关闭是否保存文件, 这里为不保存
            ' Dim changes As Object = False
            ' 关闭文件()
            ' doc.Close(changes, miss, miss)
            ' 退出 Word 应用程序       
            ' wordApp.Quit(changes, miss, miss)

            Dim word As New Word.Application()
            ' word.ApplicationClass(word = New Word.ApplicationClass())
            Dim wordType As Type = word.GetType()


            Dim docs As Microsoft.Office.Interop.Word.Documents = word.Documents

            '打开文件()
            Dim docsType As Type = docs.GetType()

            Dim sFileName As String = uploadPath
            '这里DOC文件的虚拟路径,
            Dim doc As Microsoft.Office.Interop.Word.Document = CType(docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, Nothing, docs, New [Object]() {sFileName, True, True}), Microsoft.Office.Interop.Word.Document)

            'Dim doc As Microsoft.Office.Interop.Word.Document = CType(docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, Nothing, docs, New [Object]() {sFileName, True, True}), Microsoft.Office.Interop.Word.Document)      ' 转换格式,另存为
            Dim docType As Type = doc.GetType()
            Dim saveFileName As Object = uploadPathHtml
            docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, Nothing, doc, New Object() {saveFileName, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatFilteredHTML})

            docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, Nothing, doc, New Object() {saveFileName, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML})
            wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, Nothing, word, Nothing)

            context.Response.Write(picHtml)
            context.Response.End()
        End If

        context.Response.Write("0")
        context.Response.End()

    End Sub
    Public Function GetFileName() As String


        Dim rd As New Random
        Dim ss As String = rd.Next(0, 999999).ToString()
        Dim serial As String = DateTime.Now.ToString("yyyyMMddHHmmss")
        serial = serial + ss
        Return serial
    End Function

    ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
        Get
            Return False
        End Get
    End Property

End Class

[解决办法]
必须在web.config里配置模拟账户,因为word是单机程序,没有办法直接在iis的服务进程里运行的。想在网页上显示word文件,可以用PageOffice,成熟稳定,而且还支持跨浏览器,chrome、Firefox都能用

热点排行