word另存为html emz和wmz,轉載:如何將offcie 2003文檔(.doc、.xls、.ppt)轉換成mht文檔...

轉載自:http://www.cnblogs.com/shanyou/archive/2007/11/28/975941.html

要實現

office

文檔轉換成

MHTML

文檔,首先會將

office

文檔轉換成

HTML

格式的文檔,然后將

HTML

文檔轉換成

MHTML

文檔。要將

office

文檔轉成

HTML

需要使用

Microsoft.HtmlTrans.Interface

的程序集。這個程序集是需要安裝

“HTML

轉換服務器

HTML

轉換服務器是

Windows SharePoint Services

服務器場的可選組件。你可以在微軟網站上找到該服務器的安裝文件,或單擊這里下載。

按照下面的步驟安裝:

1.解壓縮下載的文件,里面有文件:eng11probypass.mst

htmltrbackend.msi

HTML Viewer WhitePaper文檔2.如果已經安裝了office,請先卸載,然后安裝支持HTML Viewer Services的Office:在Office安裝路徑下,找到Setup文件所在路徑;將eng11probypass.mst文件拷貝到該路徑下;在命令提示符下輸入:Setup transforms= eng11probypass.mst來安裝支持HTML Viewer的Office;3.安裝HTML Viewer Server:運行htmltrbackend.msi;

安裝好以后,找到Microsoft.HtmlTrans.Interface.dll文件並把它copy到項目文件夾中。在項目中引用該文件。由於將用到命名空間Microsoft.HtmlTrans中的htmlTrLoadBalancer和htmlTrLauncher兩個Romoting對象將office文檔轉換為HTML文件。不過需要注意:

Document types not supported are:

Master documents in Word (see Word Help for an explanation of Master document)

Password protected documents, workbooks, and presentations (encrypted)

Word documents that use framesets

Files that contain Excel 4.0 macros

WordPerfect files

For files with embedded objects, VBA, scripts, etc, the following rules apply:

VBA is ignored and not executed; However, the VBA project (source code, dialog definitions, etc) is retained

Embedded and linked objects are converted to graphic images and displayed in the approximate location where they were in the source file

Linked or embedded objects with password protection are not converted

在實現中另外一個難點就是如何將HTML轉換成MHTML。MHTML是MIME Encapsulation of Aggregate HTML的縮寫,它是一種網絡編碼格式,是用來定義在電子郵件正文中如何傳送html內容的MIME標准。通俗點說,就是一個HTML文件和包括其中的.css文件、.js文件、圖片等等一切的資源文件都整合在一個MHTL文件中。以下是一個典型的MHTML文件(;后為解釋部分):

Mime-Version: 1.0

; Content-Location為主文件地址,可以隨意設定為MTHML文件的類型,這里表示MHTML文件中包含多種文件類型;boundary定義文件之間的分隔符,可隨意定義;type為主文件格式Content-Type: multipart/related; boundary="boundary-example";type="text/html"

;在前面加”--”字符表示一個文件開始--boundary-example

;以下是文件頭; text/html表示該文件的文件類型;charset表示使用的字符集Content-Type: text/html; charset="ISO-8859-1"

; Content-Transfer-Encoding:表示的是該文件的編碼類型;

;一般有兩種:一種是文本類型的一般使用”QUOTED-PRINTABLE”;

;另一種是二進制文件一般使用”BASE64”

Content-Transfer-Encoding: QUOTED-PRINTABLE

;以下是正文... text of the HTML document, which might contain URIs

referencing resources in other body parts, for example through

statements such as:

IETF logo1

IETF logo2

IETF logo3

Example of a copyright sign encoded with Quoted-Printable: =A9

Example of a copyright sign mapped onto HTML markup: ¨

--boundary-example

; Content-Location:該文件的地址,可以是絕對地址或相對主文件的相對地址;這里是絕對地址Content-Location:http://www.ietf.cnri.reston.va.us/images/ietflogo1.gif

Content-Type: IMAGE/GIF

;二進制文件,使用BASE64編碼Content-Transfer-Encoding: BASE64

R0lGODlhGAGgAPEAAP/ZRaCgoAAAACH+PUNvcHlyaWdodCAoQykgMTk5

NSBJRVRGLiBVbmF1dGhvcml6ZWQgZHVwbGljYXRpb24gcHJvaGliaXRlZC4A

etc...

--boundary-example

;這里是相對地址Content-Location: images/ietflogo2.gif

Content-Transfer-Encoding: BASE64

R0lGODlhGAGgAPEAAP/ZRaCgoAAAACH+PUNvcHlyaWdodCAoQykgMTk5

NSBJRVRGLiBVbmF1dGhvcml6ZWQgZHVwbGljYXRpb24gcHJvaGliaXRlZC4A

etc...

--boundary-example

Content-Location:http://www.ietf.cnri.reston.va.us/images/ietflogo3.gif

Content-Transfer-Encoding: BASE64

R0lGODlhGAGgAPEAAP/ZRaCgoAAAACH+PUNvcHlyaWdodCAoQykgMTk5

NSBJRVRGLiBVbmF1dGhvcml6ZWQgZHVwbGljYXRpb24gcHJvaGliaXRlZC4A

etc...

;注意這里是結束標記,表示MHTML文件已經結束了.在定義的分隔符前后都加上”--”

--boundary-example—

上面是標准的MHTML文件格式,但是按上面的標准是無法在IE里面正確瀏覽的。還需要注意以下幾點:

1.凡是文本類型的文件所有的”=”替換成”=3D”,例如IETF logo3要替換成3D"IETF

2.所有的BASE64編碼的文件必須要換行;3.每個文件開頭的分隔符要在前加上”--”,而最后一個分隔符要在前后加上”--”;4.正文與文件頭和下一個文件的分割符都要有換行符。

實現代碼:

7b8689e436c06d8426f851923086f671.gif

using

System;

7b8689e436c06d8426f851923086f671.gif

using

System.Collections;

7b8689e436c06d8426f851923086f671.gif

using

System.IO;

7b8689e436c06d8426f851923086f671.gif

using

System.Text;

7b8689e436c06d8426f851923086f671.gif

using

Microsoft.HtmlTrans;

7b8689e436c06d8426f851923086f671.gif

7b8689e436c06d8426f851923086f671.gif

namespace

MSOfficeHelper

c05772cb988e1baea6b33f36f4b13853.gif

dac98fe27a93af5c18b06af58481d000.gif

1421aedabd7ca918716a95773be91a18.gif

{

bca366a32f879a9a0c6d23397e76a06b.gifpublicclassConversion

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif//字符串的編碼bca366a32f879a9a0c6d23397e76a06b.gifprotectedstaticEncoding encoding=Encoding.Default;

bca366a32f879a9a0c6d23397e76a06b.gif//用於創建IHtmlTrLoadBalancer的remoting對象的urlbca366a32f879a9a0c6d23397e76a06b.gifbca366a32f879a9a0c6d23397e76a06b.gifprotectedstaticstringstrServiceUrl=System.Configuration.ConfigurationSettings.AppSettings["OfficeHtmlViewService"];

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gifpublicstaticvoidConvertMHT(stringinputfile,stringoutputfile)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif//通過url(strServiceUrl)獲取一個IHtmlTrLoadBalancer的remoting對象bca366a32f879a9a0c6d23397e76a06b.gifIHtmlTrLoadBalancer htmlTrLoadBalancer=bca366a32f879a9a0c6d23397e76a06b.gif                (IHtmlTrLoadBalancer) System.Activator.GetObject(

bca366a32f879a9a0c6d23397e76a06b.giftypeof(IHtmlTrLoadBalancer), strServiceUrl);

bca366a32f879a9a0c6d23397e76a06b.gif//用輸入文件名(inputfile)作為一個任務的任務標示(strTask)bca366a32f879a9a0c6d23397e76a06b.gifstringstrTask=inputfile;

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//根據任務標示(strTask)新建一個任務並獲取任務的url(strLauncherUri)bca366a32f879a9a0c6d23397e76a06b.gifstringstrLauncherUri=htmlTrLoadBalancer.StrGetLauncher(strTask);

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//通過任務的url(strLauncherUri)獲取一個IHtmlTrLauncher的remoting對象(htmlTrLauncher),

bca366a32f879a9a0c6d23397e76a06b.gif//並用這個對象來執行該任務bca366a32f879a9a0c6d23397e76a06b.gifIHtmlTrLauncher htmlTrLauncher=bca366a32f879a9a0c6d23397e76a06b.gif                (IHtmlTrLauncher) System.Activator.GetObject(typeof(IHtmlTrLauncher), strLauncherUri);

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//接下來是把輸入文件(inputfile)的內容讀入一個byte數組(bFile)bca366a32f879a9a0c6d23397e76a06b.gifbyte[] bFile=null;

bca366a32f879a9a0c6d23397e76a06b.gif            FileStream fsInputMht=null;

bca366a32f879a9a0c6d23397e76a06b.gif            BinaryReader bwInputMht=null;

bca366a32f879a9a0c6d23397e76a06b.giftry9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                fsInputMht=newFileStream(inputfile, FileMode.Open);

bca366a32f879a9a0c6d23397e76a06b.gif                bwInputMht=newBinaryReader(fsInputMht, encoding);

bca366a32f879a9a0c6d23397e76a06b.gif                bFile=newbyte[fsInputMht.Length];

bca366a32f879a9a0c6d23397e76a06b.giffor(longi=0; i

bca366a32f879a9a0c6d23397e76a06b.gif                    bFile[i]=bwInputMht.ReadByte();

bca366a32f879a9a0c6d23397e76a06b.gif                bwInputMht.Close();

bca366a32f879a9a0c6d23397e76a06b.gif                fsInputMht.Close();

bca366a32f879a9a0c6d23397e76a06b.gif

0fd9b20d38577597a7d79c5a4362b4d5.gif            }bca366a32f879a9a0c6d23397e76a06b.gifcatch(Exception ex)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                bwInputMht.Close();

bca366a32f879a9a0c6d23397e76a06b.gif                fsInputMht.Close();

bca366a32f879a9a0c6d23397e76a06b.gifthrowex;

0fd9b20d38577597a7d79c5a4362b4d5.gif            }bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//CHICreateHtml通過office文檔創建HTML文件及其附件

bca366a32f879a9a0c6d23397e76a06b.gif//CHICreateHtml(

bca366a32f879a9a0c6d23397e76a06b.gif//string strLauncherUri,         任務的url

bca366a32f879a9a0c6d23397e76a06b.gif//byte[] rgbFile,             office文檔的二進制內容

bca366a32f879a9a0c6d23397e76a06b.gif//Microsoft.HtmlTrans.BrowserType bt, 使用瀏覽類型,該參數是一個枚舉類型

bca366a32f879a9a0c6d23397e76a06b.gif//string strReqFile,           office文檔的路徑/url

bca366a32f879a9a0c6d23397e76a06b.gif//string strTaskName,           任務標示名,HTML轉換服務器根據其跟蹤該請求

bca366a32f879a9a0c6d23397e76a06b.gif//int timeout,                 轉換超時時間,如果網絡狀況較差,建議值設大點

bca366a32f879a9a0c6d23397e76a06b.gif//bool fReturnFileBits          是否返回二進制內容,分別保存在CreateHtmlInfo的rgbMainFile屬性和rgrgbThicketFiles屬性中

bca366a32f879a9a0c6d23397e76a06b.gif//);bca366a32f879a9a0c6d23397e76a06b.gifCreateHtmlInfo chi=htmlTrLauncher.CHICreateHtml(strLauncherUri, bFile,

bca366a32f879a9a0c6d23397e76a06b.gif                                                              BrowserType.BT_IE4, inputfile, strTask,200,true);

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//結束轉換任務bca366a32f879a9a0c6d23397e76a06b.gifhtmlTrLoadBalancer.LauncherTaskCompleted(strLauncherUri, strTask);

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//在轉換HTML文件的過程中沒有錯誤,並且存在主文件,執行以下代碼bca366a32f879a9a0c6d23397e76a06b.gifif(chi.ce==CreationErrorType.CE_NONE&&chi.fHasMainFile)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                FileStream fsOutputMht=null;

bca366a32f879a9a0c6d23397e76a06b.gif                BinaryWriter bwOutputMht=null;

bca366a32f879a9a0c6d23397e76a06b.giftry9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                    fsOutputMht=newFileStream(outputfile, FileMode.Create);

bca366a32f879a9a0c6d23397e76a06b.gif                    bwOutputMht=newBinaryWriter(fsOutputMht, encoding);

bca366a32f879a9a0c6d23397e76a06b.gif//將HTML文件及其附件轉換為MHTML文件bca366a32f879a9a0c6d23397e76a06b.gifbyte[] bMHTMLBody=CreateMHTMLBody(chi);

bca366a32f879a9a0c6d23397e76a06b.gifstringtemp=System.Text.Encoding.Default.GetString(bMHTMLBody);

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif                    StringBuilder sb=newStringBuilder();

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gifforeach(charcintemp.ToCharArray())

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gifstringt=c.ToString();

bca366a32f879a9a0c6d23397e76a06b.gifif((uint) c>500)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                            t=""+((uint) c).ToString()+";";

0fd9b20d38577597a7d79c5a4362b4d5.gif                        }bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif                        sb.Append(t);

0fd9b20d38577597a7d79c5a4362b4d5.gif                    }bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif                    bMHTMLBody=Encoding.ASCII.GetBytes(sb.ToString());

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif                    bwOutputMht.Write(bMHTMLBody);

bca366a32f879a9a0c6d23397e76a06b.gif                    bwOutputMht.Close();

bca366a32f879a9a0c6d23397e76a06b.gif                    fsOutputMht.Close();

bca366a32f879a9a0c6d23397e76a06b.gifreturn;

0fd9b20d38577597a7d79c5a4362b4d5.gif                }bca366a32f879a9a0c6d23397e76a06b.gifcatch(Exception ex)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                    bwOutputMht.Close();

bca366a32f879a9a0c6d23397e76a06b.gif                    fsOutputMht.Close();

bca366a32f879a9a0c6d23397e76a06b.gifthrowex;

0fd9b20d38577597a7d79c5a4362b4d5.gif                }0fd9b20d38577597a7d79c5a4362b4d5.gif            }bca366a32f879a9a0c6d23397e76a06b.gifreturn;

0fd9b20d38577597a7d79c5a4362b4d5.gif        }bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//MHTML文件頭信息bca366a32f879a9a0c6d23397e76a06b.gifprotectedstaticstringMIME=bca366a32f879a9a0c6d23397e76a06b.gif"MIME-Version: 1.0"+Environment.NewLine+9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif"Content-Type: multipart/related; boundary=\"1421aedabd7ca918716a95773be91a18.gif{0}\""+Environment.NewLine+bca366a32f879a9a0c6d23397e76a06b.gif                Environment.NewLine;

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//MHTML各個文件的頭信息bca366a32f879a9a0c6d23397e76a06b.gifprotectedstaticstringHEADER=bca366a32f879a9a0c6d23397e76a06b.gif            Environment.NewLine+"--{0}"+Environment.NewLine+bca366a32f879a9a0c6d23397e76a06b.gif"Content-Location: {1}"+Environment.NewLine+bca366a32f879a9a0c6d23397e76a06b.gif"Content-Transfer-Encoding: {2}"+Environment.NewLine+bca366a32f879a9a0c6d23397e76a06b.gif"Content-Type: {3}"+Environment.NewLine+bca366a32f879a9a0c6d23397e76a06b.gif                Environment.NewLine;

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//定義MHTML中各文件之間的分隔符bca366a32f879a9a0c6d23397e76a06b.gifprotectedstaticstringBOUNDARY="Define_It_Youself";

bca366a32f879a9a0c6d23397e76a06b.gif//MHTML主文件的URLbca366a32f879a9a0c6d23397e76a06b.gifprotectedstaticstringLOCATION=string.Format(@"file:///c:/{0}/",Guid.NewGuid());

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gifprivatestaticbyte[] CreateMHTMLBody(CreateHtmlInfo creatHtmlInfo)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif//將回車換行符進行編碼並存儲在字節數組中bca366a32f879a9a0c6d23397e76a06b.gifbyte[] bNewLine=Encoding.UTF8.GetBytes(Environment.NewLine);

bca366a32f879a9a0c6d23397e76a06b.gif//將3D進行編碼並存儲在字節數組中bca366a32f879a9a0c6d23397e76a06b.gifbyte[] bAfterEquals=encoding.GetBytes("3D");

bca366a32f879a9a0c6d23397e76a06b.gif//'='的byte值為61bca366a32f879a9a0c6d23397e76a06b.gifbytebEquals=61;

bca366a32f879a9a0c6d23397e76a06b.gif//MHTML文件的長度bca366a32f879a9a0c6d23397e76a06b.giflonglMHTMLBodyLength=0;

bca366a32f879a9a0c6d23397e76a06b.gif//從零開始的字節偏移量bca366a32f879a9a0c6d23397e76a06b.giflonglOffset=0;

bca366a32f879a9a0c6d23397e76a06b.gif//根據BOUNDARY的定義形成MTHML文件的頭信息bca366a32f879a9a0c6d23397e76a06b.gifstringstrMIME=string.Format(MIME, BOUNDARY);

bca366a32f879a9a0c6d23397e76a06b.gif//將頭信息進行編碼並存儲在字節數組中bca366a32f879a9a0c6d23397e76a06b.gifbyte[] bMIME=encoding.GetBytes(strMIME);

bca366a32f879a9a0c6d23397e76a06b.gif//MHTML文件的長度增加bMIME.LongLengthbca366a32f879a9a0c6d23397e76a06b.giflMHTMLBodyLength+=bMIME.LongLength;

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//根據信息定義主文件的頭信息bca366a32f879a9a0c6d23397e76a06b.gifstringstrMainHeader=string.Format(HEADER,

bca366a32f879a9a0c6d23397e76a06b.gif                                                 BOUNDARY,

bca366a32f879a9a0c6d23397e76a06b.gif                                                 LOCATION+creatHtmlInfo.strMainFileName,

bca366a32f879a9a0c6d23397e76a06b.gif                                                 TransferEncoding.QUOTED_PRINTABLE,

bca366a32f879a9a0c6d23397e76a06b.gif                                                 ContentType.TEXT_HTML);

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gifbyte[] bMainHeader=encoding.GetBytes(strMainHeader);

bca366a32f879a9a0c6d23397e76a06b.gif            lMHTMLBodyLength+=bMainHeader.LongLength;

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//建立一個動態臨時數組bca366a32f879a9a0c6d23397e76a06b.gifArrayList alTempArray=newArrayList();

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//主文件的正文部分所有的"="替換成"=3D"bca366a32f879a9a0c6d23397e76a06b.giffor(inti=0; i

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                alTempArray.Add(creatHtmlInfo.rgbMainFile[i]);

bca366a32f879a9a0c6d23397e76a06b.gifif(creatHtmlInfo.rgbMainFile[i]==bEquals)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                    alTempArray.Add(bAfterEquals[0]);

bca366a32f879a9a0c6d23397e76a06b.gif                    alTempArray.Add(bAfterEquals[1]);

0fd9b20d38577597a7d79c5a4362b4d5.gif                }0fd9b20d38577597a7d79c5a4362b4d5.gif            }bca366a32f879a9a0c6d23397e76a06b.gif//獲取新的主文件的正文部分並存儲在字節數組中bca366a32f879a9a0c6d23397e76a06b.gifbyte[] bMainBody=newbyte[alTempArray.Count];

bca366a32f879a9a0c6d23397e76a06b.gif            alTempArray.CopyTo(bMainBody);

bca366a32f879a9a0c6d23397e76a06b.gif            lMHTMLBodyLength+=bMainBody.LongLength;

bca366a32f879a9a0c6d23397e76a06b.gif            alTempArray.Clear();

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//申明存儲MHTML附件的正文內容字節數組,該數組為一個二維數組bca366a32f879a9a0c6d23397e76a06b.gifbyte[][] bThicketContent=null;

bca366a32f879a9a0c6d23397e76a06b.gif//申明存儲MHTML附件的頭信息字節數組bca366a32f879a9a0c6d23397e76a06b.gifstring[] strThicketHeaders=null;

bca366a32f879a9a0c6d23397e76a06b.gif//如果MHTML存在附件則執行以下代碼bca366a32f879a9a0c6d23397e76a06b.gifif(creatHtmlInfo.fHasThicket)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                bThicketContent=newbyte[creatHtmlInfo.rgrgbThicketFiles.Length][];

bca366a32f879a9a0c6d23397e76a06b.gif                strThicketHeaders=newstring[creatHtmlInfo.rgrgbThicketFiles.Length];

bca366a32f879a9a0c6d23397e76a06b.giffor(inti=0; i

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif//定義附件的頭信息bca366a32f879a9a0c6d23397e76a06b.gifstringstrLocation=LOCATION+bca366a32f879a9a0c6d23397e76a06b.gif                        creatHtmlInfo.strThicketFolderName+"/"+bca366a32f879a9a0c6d23397e76a06b.gif                        creatHtmlInfo.rgstrThicketFileNames[i];

bca366a32f879a9a0c6d23397e76a06b.gifstringstrTransferEncoding=TransferEncoding.GetTransferEncodingByFileName

bca366a32f879a9a0c6d23397e76a06b.gif                        (creatHtmlInfo.rgstrThicketFileNames[i]);

bca366a32f879a9a0c6d23397e76a06b.gifstringstrContentType=ContentType.GetContentTypeByFileName

bca366a32f879a9a0c6d23397e76a06b.gif                        (creatHtmlInfo.rgstrThicketFileNames[i]);

bca366a32f879a9a0c6d23397e76a06b.gif                    strThicketHeaders[i]=string.Format(HEADER,

bca366a32f879a9a0c6d23397e76a06b.gif                                                         BOUNDARY,

bca366a32f879a9a0c6d23397e76a06b.gif                                                         strLocation,

bca366a32f879a9a0c6d23397e76a06b.gif                                                         strTransferEncoding,

bca366a32f879a9a0c6d23397e76a06b.gif                                                         strContentType);

bca366a32f879a9a0c6d23397e76a06b.gifbyte[] bThicketHeader=encoding.GetBytes(strThicketHeaders[i]);

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif                    StringBuilder strBase64ThicketBody=newStringBuilder();

bca366a32f879a9a0c6d23397e76a06b.gifbyte[] bThicketBody=null;

bca366a32f879a9a0c6d23397e76a06b.gif//如果附件二進制文件,那么用BASE64編碼bca366a32f879a9a0c6d23397e76a06b.gifif(strTransferEncoding==bca366a32f879a9a0c6d23397e76a06b.gif                        TransferEncoding.BASE64)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif//首先將字節數組里的內容轉換為Base64編碼的字符串bca366a32f879a9a0c6d23397e76a06b.gifstrBase64ThicketBody.Append(

bca366a32f879a9a0c6d23397e76a06b.gif                            Convert.ToBase64String(creatHtmlInfo.rgrgbThicketFiles[i]));

bca366a32f879a9a0c6d23397e76a06b.gif//然后將字符串進行編碼存儲在新的字節數組中bca366a32f879a9a0c6d23397e76a06b.gifbThicketBody=encoding.GetBytes(strBase64ThicketBody.ToString());

bca366a32f879a9a0c6d23397e76a06b.gif//每76個字節,加入一個換行符bca366a32f879a9a0c6d23397e76a06b.gifintBUFFER_SIZE=76;

bca366a32f879a9a0c6d23397e76a06b.giffor(intj=0; j

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                            alTempArray.Add(bThicketBody[j]);

bca366a32f879a9a0c6d23397e76a06b.gifif(j%BUFFER_SIZE==BUFFER_SIZE-1)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                                alTempArray.Add(bNewLine[0]);

bca366a32f879a9a0c6d23397e76a06b.gif                                alTempArray.Add(bNewLine[1]);

0fd9b20d38577597a7d79c5a4362b4d5.gif                            }0fd9b20d38577597a7d79c5a4362b4d5.gif                        }bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketBody=newbyte[alTempArray.Count];

bca366a32f879a9a0c6d23397e76a06b.gif                        alTempArray.CopyTo(bThicketBody);

bca366a32f879a9a0c6d23397e76a06b.gif                        alTempArray.Clear();

0fd9b20d38577597a7d79c5a4362b4d5.gif                    }bca366a32f879a9a0c6d23397e76a06b.gif//如果附件是以明文編碼,那么明文編碼,並將附件正文部分所有的"="替換成"=3D"bca366a32f879a9a0c6d23397e76a06b.gifelse9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.giffor(intj=0; j

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                            alTempArray.Add(creatHtmlInfo.rgrgbThicketFiles[i][j]);

bca366a32f879a9a0c6d23397e76a06b.gifif(creatHtmlInfo.rgrgbThicketFiles[i][j]==bEquals)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                                alTempArray.Add(bAfterEquals[0]);

bca366a32f879a9a0c6d23397e76a06b.gif                                alTempArray.Add(bAfterEquals[1]);

0fd9b20d38577597a7d79c5a4362b4d5.gif                            }0fd9b20d38577597a7d79c5a4362b4d5.gif                        }bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketBody=newbyte[alTempArray.Count];

bca366a32f879a9a0c6d23397e76a06b.gif                        alTempArray.CopyTo(bThicketBody);

bca366a32f879a9a0c6d23397e76a06b.gif                        alTempArray.Clear();

0fd9b20d38577597a7d79c5a4362b4d5.gif                    }bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//如中htm文件則進行添加base操作bca366a32f879a9a0c6d23397e76a06b.gifstringext=Path.GetExtension(creatHtmlInfo.rgstrThicketFileNames[i]).ToLower();

bca366a32f879a9a0c6d23397e76a06b.gifif(ext==".htm")

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gifstringbody=Encoding.Default.GetString(bThicketBody);

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gifintstart=body.IndexOf("

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gifif(start>-1)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                            body=bca366a32f879a9a0c6d23397e76a06b.gif                                body.Insert(

bca366a32f879a9a0c6d23397e76a06b.gif                                    start,

bca366a32f879a9a0c6d23397e76a06b.gifstring.Format(

bca366a32f879a9a0c6d23397e76a06b.gif"\r\n\r\n"9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif+"{0}\"\r\n"bca366a32f879a9a0c6d23397e76a06b.gif+"id=3D\"webarch_temp_base_tag\">\r\n"bca366a32f879a9a0c6d23397e76a06b.gif+"\r\n",

bca366a32f879a9a0c6d23397e76a06b.gif                                        LOCATION+creatHtmlInfo.strThicketFolderName+@"/"+creatHtmlInfo.rgstrThicketFileNames[i]

bca366a32f879a9a0c6d23397e76a06b.gif                                        )

bca366a32f879a9a0c6d23397e76a06b.gif                                    );

0fd9b20d38577597a7d79c5a4362b4d5.gif                        }bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gifbyte[] data=Encoding.Default.GetBytes(body);

bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketBody=newbyte[data.Length];

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif                        data.CopyTo(bThicketBody,0);

0fd9b20d38577597a7d79c5a4362b4d5.gif                    }bca366a32f879a9a0c6d23397e76a06b.gif//將附件中的頭信息字節數組和正文的字節數組合並存儲在bThicketContent[i]中,

bca366a32f879a9a0c6d23397e76a06b.gif//並在lMHTMLBodyLength增加相應的長度bca366a32f879a9a0c6d23397e76a06b.gifbThicketContent[i]=newbyte[bThicketHeader.LongLength+bThicketBody.LongLength+bNewLine.LongLength];

bca366a32f879a9a0c6d23397e76a06b.gif                    Array.Copy(

bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketHeader,

bca366a32f879a9a0c6d23397e76a06b.gif0,

bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketContent[i],

bca366a32f879a9a0c6d23397e76a06b.gif0,

bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketHeader.LongLength);

bca366a32f879a9a0c6d23397e76a06b.gif                    Array.Copy(

bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketBody,

bca366a32f879a9a0c6d23397e76a06b.gif0,

bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketContent[i],

bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketHeader.LongLength,

bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketBody.LongLength);

bca366a32f879a9a0c6d23397e76a06b.gif                    Array.Copy(

bca366a32f879a9a0c6d23397e76a06b.gif                        bNewLine,

bca366a32f879a9a0c6d23397e76a06b.gif0,

bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketContent[i],

bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketHeader.LongLength+bThicketBody.LongLength,

bca366a32f879a9a0c6d23397e76a06b.gif                        bNewLine.LongLength);

bca366a32f879a9a0c6d23397e76a06b.gif                    lMHTMLBodyLength+=bThicketContent[i].LongLength;

0fd9b20d38577597a7d79c5a4362b4d5.gif                }0fd9b20d38577597a7d79c5a4362b4d5.gif            }bca366a32f879a9a0c6d23397e76a06b.gif//MHTML文件結束分割符的存儲在字節數組中bca366a32f879a9a0c6d23397e76a06b.gifbyte[] bEndBoundary=encoding.GetBytes(

bca366a32f879a9a0c6d23397e76a06b.gif                Environment.NewLine+"--"+BOUNDARY+"--"+Environment.NewLine);

bca366a32f879a9a0c6d23397e76a06b.gif            lMHTMLBodyLength+=bEndBoundary.LongLength;

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//新建一個數組,該數組用於存儲MHTML文件的所有內容bca366a32f879a9a0c6d23397e76a06b.gifbyte[] bMHTMLBody=newbyte[lMHTMLBodyLength];

bca366a32f879a9a0c6d23397e76a06b.gif//將所有的內容全部合並,並存儲在數組bMHTMLBody中bca366a32f879a9a0c6d23397e76a06b.gifArray.Copy(bMIME,0, bMHTMLBody, lOffset, bMIME.LongLength);

bca366a32f879a9a0c6d23397e76a06b.gif            lOffset+=bMIME.LongLength;

bca366a32f879a9a0c6d23397e76a06b.gif            Array.Copy(bMainHeader,0, bMHTMLBody, lOffset, bMainHeader.LongLength);

bca366a32f879a9a0c6d23397e76a06b.gif            lOffset+=bMainHeader.LongLength;

bca366a32f879a9a0c6d23397e76a06b.gif            Array.Copy(bMainBody,0, bMHTMLBody, lOffset, bMainBody.LongLength);

bca366a32f879a9a0c6d23397e76a06b.gif            lOffset+=bMainBody.LongLength;

bca366a32f879a9a0c6d23397e76a06b.gifif(bThicketContent!=null)

bca366a32f879a9a0c6d23397e76a06b.giffor(inti=0; i

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif                    Array.Copy(

bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketContent[i],

bca366a32f879a9a0c6d23397e76a06b.gif0,

bca366a32f879a9a0c6d23397e76a06b.gif                        bMHTMLBody,

bca366a32f879a9a0c6d23397e76a06b.gif                        lOffset,

bca366a32f879a9a0c6d23397e76a06b.gif                        bThicketContent[i].LongLength);

bca366a32f879a9a0c6d23397e76a06b.gif                    lOffset+=bThicketContent[i].LongLength;

0fd9b20d38577597a7d79c5a4362b4d5.gif                }bca366a32f879a9a0c6d23397e76a06b.gif            Array.Copy(bEndBoundary,0, bMHTMLBody, lOffset, bEndBoundary.LongLength);

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gifreturnbMHTMLBody;

0fd9b20d38577597a7d79c5a4362b4d5.gif        }0fd9b20d38577597a7d79c5a4362b4d5.gif    }bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//根據不同的文件后綴名定義編碼方式bca366a32f879a9a0c6d23397e76a06b.gifclassTransferEncoding

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gifpublicconststringQUOTED_PRINTABLE="quoted-printable";

bca366a32f879a9a0c6d23397e76a06b.gifpublicconststringBASE64="base64";

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gifpublicstaticstringGetTransferEncodingByFileName(stringfileName)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gifstringstrRusult=string.Empty;

bca366a32f879a9a0c6d23397e76a06b.gifstringstrExtension=fileName.Remove(0, fileName.LastIndexOf(".")).ToUpper();

bca366a32f879a9a0c6d23397e76a06b.gifswitch(strExtension)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif//以下文件名在MTHML文件中都將以明文的形式編碼bca366a32f879a9a0c6d23397e76a06b.gifdefault:

bca366a32f879a9a0c6d23397e76a06b.gifcase".HTM":

bca366a32f879a9a0c6d23397e76a06b.gifcase".HTML":

bca366a32f879a9a0c6d23397e76a06b.gifcase".XML":

bca366a32f879a9a0c6d23397e76a06b.gif                    strRusult=TransferEncoding.QUOTED_PRINTABLE;

bca366a32f879a9a0c6d23397e76a06b.gifbreak;

bca366a32f879a9a0c6d23397e76a06b.gif//以下文件名在MHTML文件中都將以BASE64編碼形式出現bca366a32f879a9a0c6d23397e76a06b.gifcase".JPG":

bca366a32f879a9a0c6d23397e76a06b.gifcase".JEPG":

bca366a32f879a9a0c6d23397e76a06b.gifcase".PNG":

bca366a32f879a9a0c6d23397e76a06b.gifcase".MSO":

bca366a32f879a9a0c6d23397e76a06b.gifcase".EMZ":

bca366a32f879a9a0c6d23397e76a06b.gifcase".GIF":

bca366a32f879a9a0c6d23397e76a06b.gifcase".WMF":

bca366a32f879a9a0c6d23397e76a06b.gifcase".WMZ":

bca366a32f879a9a0c6d23397e76a06b.gifcase".CSS":

bca366a32f879a9a0c6d23397e76a06b.gif                    strRusult=TransferEncoding.BASE64;

bca366a32f879a9a0c6d23397e76a06b.gifbreak;

0fd9b20d38577597a7d79c5a4362b4d5.gif            }bca366a32f879a9a0c6d23397e76a06b.gifreturnstrRusult;

0fd9b20d38577597a7d79c5a4362b4d5.gif        }0fd9b20d38577597a7d79c5a4362b4d5.gif    }bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif//根據不同的后綴名定義文件內容的類型bca366a32f879a9a0c6d23397e76a06b.gifclassContentType

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gifpublicconststringTEXT_HTML="text/html; charset=\"us-ascii\"";

bca366a32f879a9a0c6d23397e76a06b.gifpublicconststringAPPLICATION_XMSO="application/x-mso";

bca366a32f879a9a0c6d23397e76a06b.gifpublicconststringIMAGE_XEMZ="image/x-emz";

bca366a32f879a9a0c6d23397e76a06b.gifpublicconststringIMAGE_GIF="image/gif";

bca366a32f879a9a0c6d23397e76a06b.gifpublicconststringTEXT_CSS="text/css";

bca366a32f879a9a0c6d23397e76a06b.gifpublicconststringTEXT_XML="text/xml; charset=\"utf-8\"";

bca366a32f879a9a0c6d23397e76a06b.gifpublicconststringIMAGE_XWMF="image/x-wmf";

bca366a32f879a9a0c6d23397e76a06b.gifpublicconststringIMAGE_PNG="image/png";

bca366a32f879a9a0c6d23397e76a06b.gifpublicconststringIMAGE_JPEG="image/jpeg";

bca366a32f879a9a0c6d23397e76a06b.gifpublicconststringTEXT_JS="application/javascript; charset=\"us-ascii\"";

bca366a32f879a9a0c6d23397e76a06b.gifpublicconststringIMAGE_WMZ="image/x-wmz";

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gifpublicstaticstringGetContentTypeByFileName(stringfileName)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gifstringstrExtension=fileName.Remove(0, fileName.LastIndexOf(".")).ToUpper();

bca366a32f879a9a0c6d23397e76a06b.gifswitch(strExtension)

9431d20cb70d18d2a795a1cf8b32c5a8.gif

6c20e86cc60f948a4c81c3a3d5785005.gif1421aedabd7ca918716a95773be91a18.gif{

bca366a32f879a9a0c6d23397e76a06b.gif//以下文件名在MHTML文件中的類型是text/html; charset="us-ascii"bca366a32f879a9a0c6d23397e76a06b.gifcase".HTM":

bca366a32f879a9a0c6d23397e76a06b.gifcase".HTML":

bca366a32f879a9a0c6d23397e76a06b.gifreturnContentType.TEXT_HTML;

bca366a32f879a9a0c6d23397e76a06b.gif//以下文件名在MHTML文件中的類型是application/x-msobca366a32f879a9a0c6d23397e76a06b.gifcase".MSO":

bca366a32f879a9a0c6d23397e76a06b.gifreturnContentType.APPLICATION_XMSO;

bca366a32f879a9a0c6d23397e76a06b.gif//以下文件名在MHTML文件中的類型是image/x-emzbca366a32f879a9a0c6d23397e76a06b.gifcase".EMZ":

bca366a32f879a9a0c6d23397e76a06b.gifreturnContentType.IMAGE_XEMZ;

bca366a32f879a9a0c6d23397e76a06b.gif//以下文件名在MHTML文件中的類型是image/gifbca366a32f879a9a0c6d23397e76a06b.gifcase".GIF":

bca366a32f879a9a0c6d23397e76a06b.gifreturnContentType.IMAGE_GIF;

bca366a32f879a9a0c6d23397e76a06b.gif//以下文件名在MHTML文件中的類型是text/cssbca366a32f879a9a0c6d23397e76a06b.gifcase".CSS":

bca366a32f879a9a0c6d23397e76a06b.gifreturnContentType.TEXT_CSS;

bca366a32f879a9a0c6d23397e76a06b.gif//以下文件名在MHTML文件中的類型是text/xml; charset="utf-8"bca366a32f879a9a0c6d23397e76a06b.gifcase".XML":

bca366a32f879a9a0c6d23397e76a06b.gifreturnContentType.TEXT_XML;

bca366a32f879a9a0c6d23397e76a06b.gif//以下文件名在MHTML文件中的類型是image/x-wmfbca366a32f879a9a0c6d23397e76a06b.gifcase".WMF":

bca366a32f879a9a0c6d23397e76a06b.gifreturnContentType.IMAGE_XWMF;

bca366a32f879a9a0c6d23397e76a06b.gif//以下文件名在MHTML文件中的類型是image/pngbca366a32f879a9a0c6d23397e76a06b.gifcase".PNG":

bca366a32f879a9a0c6d23397e76a06b.gifreturnContentType.IMAGE_PNG;

bca366a32f879a9a0c6d23397e76a06b.gif//以下文件名在MHTML文件中的類型是image/jpegbca366a32f879a9a0c6d23397e76a06b.gifcase".JPG":

bca366a32f879a9a0c6d23397e76a06b.gifcase".JEPG":

bca366a32f879a9a0c6d23397e76a06b.gifreturnContentType.IMAGE_JPEG;

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gifcase".JS":

bca366a32f879a9a0c6d23397e76a06b.gifreturnContentType.TEXT_JS;

bca366a32f879a9a0c6d23397e76a06b.gif

bca366a32f879a9a0c6d23397e76a06b.gifcase".WMZ":

bca366a32f879a9a0c6d23397e76a06b.gifreturnContentType.IMAGE_WMZ;

0fd9b20d38577597a7d79c5a4362b4d5.gif            }bca366a32f879a9a0c6d23397e76a06b.gifreturnstring.Empty;

0fd9b20d38577597a7d79c5a4362b4d5.gif        }0fd9b20d38577597a7d79c5a4362b4d5.gif    }bca366a32f879a9a0c6d23397e76a06b.gif

20123297843cfb207b11f3e6632839a0.gif}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值