C#,webservice,http下载word,AsposeWords合并word

来源:互联网 发布:网络在线测速度 编辑:程序博客网 时间:2024/05/18 09:25

C#,webservice,http下载word,AsposeWords合并word

        /// <summary>        /// 下载并获取合并WORD文件        /// </summary>        /// <returns></returns>        [WebMethod]        public String GetMergeWordByUrl(String strWordUrls)        {            //获取Word路径及名字            String strDirectory = ConfigurationManager.AppSettings["MergeFilePath"].ToString();            String strfileName = Guid.NewGuid().ToString("N");             String strSavePath = strDirectory + strfileName + ".doc";            String result = "";            byte[] byteResult = null;            try            {                Document doc = new Document();                doc.RemoveAllChildren();                String[] strsUrls = strWordUrls.Split(',');                for (int i = 0; i < strsUrls.Length; i++)                {                    String strSavePathTemp = strDirectory + strfileName + "Temp" + (i + 1) + ".doc";                    //发送请求并获取相应回应数据                    HttpWebRequest request = WebRequest.Create(strsUrls[i]) as HttpWebRequest;                    HttpWebResponse response = request.GetResponse() as HttpWebResponse;                    Stream responseStream = response.GetResponseStream();                    FileStream fStream = new FileStream(strSavePathTemp, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);                    byte[] bArr = new byte[1024];                    int size = responseStream.Read(bArr, 0, (int)bArr.Length);                    while (size > 0)                    {                        fStream.Write(bArr, 0, size);                        size = responseStream.Read(bArr, 0, (int)bArr.Length);                    }                    fStream.Close();                    byte[] btTemp = File.ReadAllBytes(strSavePathTemp);                    MemoryStream msTemp = new MemoryStream(btTemp);                    //合并Word                    Document srcDoc = new Document(msTemp);                    doc.AppendDocument(srcDoc, ImportFormatMode.KeepSourceFormatting);                    responseStream.Close();                    //删除临时文件                    File.Delete(strSavePathTemp);                }                //保存合并Word                doc.Save(strSavePath);                //获取合并Word                byteResult = File.ReadAllBytes(strSavePath);                if (byteResult != null && byteResult.Length > 0)                {                    result = Convert.ToBase64String(byteResult);                }                //删除合并Word                //File.Delete(strSavePath);            }            catch (Exception e)            {            }            return result;        }