DSOFramer控件文档上传到服务器处理页面后,怎么解析数据 <转>

 

DSOFramer控件文档上传到服务器处理页面后,怎么解析数据   
  

http://www.cppblog.com/wanhhf/archive/2006/02/20/3355.html下载了DSOFramer控件,按照上面的说法将文件 post到UpLoadFile.aspx页面,不知道怎么解析出来

//初始化Http引擎
document.all.FramerControl1.HttpInit();
//增加Post变量
document.all.FramerControl1.HttpAddPostString("RecordID","20060102200);
document.all.FramerControl1.HttpAddPostString("UserID","李局长");
//上传打开的文件
document.all.FramerControl1.HttpAddPostCurrFile("FileData", "文档名.doc");
//执行上传动作
document.all.FramerControl1.HttpPost("http://xxxx.com/uploadfile.aspx");

我是按照最笨的办法解析出来了,但是应该有更好的方法,看一下我的代码
Default.aspx部分


DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
     <HEAD>
         <title>WebOfficetitle>
         <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
         <meta content="C#" name="CODE_LANGUAGE">
         <meta content="JavaScript" name="vs_defaultClientScript">
         <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
         <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
         <SCRIPT language="javascript" event="NotifyCtrlReady" for="FramerControl1">
             OpenWebDoc()
         SCRIPT>
         <script language="javascript">
         function NewDoc(){
             //document.all.FramerControl1.CreateNew("Word.Document");//Word
             //document.all.FramerControl1.CreateNew("PowerPoint.Show");//PowerPoint
             //document.all.FramerControl1.CreateNew("Excel.Sheet");//Excel.Sheet
             document.all.FramerControl1.CreateNew("Excel.Chart");//Excel.Chart
             //document.all.FramerControl1.CreateNew("Visio.Drawing");//Visio
         }
         function OpenDoc(){
                 document.all.FramerControl1.showdialog(1)
         }
         function OpenWebDoc(){
             document.all.FramerControl1.Open("Http://localhost/WebOffice/DocumentTemplate/Apply.doc", true);
         }
         function SaveToLocal(){
             document.all.FramerControl1.Save("c:\\1.doc",true);
         }
         function SaveToWeb(){
             document.all.FramerControl1.HttpInit();
             document.all.FramerControl1.HttpAddPostString("RecordID","200601022")
             document.all.FramerControl1.HttpAddPostString("UserID","李局长")
             document.all.FramerControl1.HttpAddPostCurrFile("FileData", "bbb.doc")
             document.all.FramerControl1.HttpPost("http://localhost/WebOffice/SaveDoc.aspx")
         }
         function Track(){
             document.all.FramerControl1.SetTrackRevisions(1)
         }
         function UnTrack(){
             document.all.FramerControl1.SetTrackRevisions(0)
             document.all.FramerControl1.SetTrackRevisions(4)
         }
         function ShowTrack(){
             document.all.FramerControl1.ShowRevisions(1)
             document.all.FramerControl1.ShowView(5)
         }
         script>
     HEAD>
     <body MS_POSITIONING="GridLayout">
         <form id="Form1" method="post" encType="multipart/form-data" runat="server">
             <TABLE id="Table1" height="100%" cellSpacing="0" cellPadding="0" width="100%" border="0">
                 <TR>
                     <TD vAlign="top" align="center" width="100">
                         <TABLE id="Table2" cellSpacing="0" cellPadding="3" width="80" border="0">
                             <TR>
                                 <TD><INPUT language="javascript" style="WIDTH: 80px" οnclick="NewDoc()" type="button" value="New">TD>
                             TR>
                             <TR>
                                 <TD><INPUT style="WIDTH: 80px" οnclick="OpenDoc()" type="button" value="Open">TD>
                             TR>
                             <TR>
                                 <TD><INPUT style="WIDTH: 80px" οnclick="OpenWebDoc()" type="button" value="OpenWeb">TD>
                             TR>
                             <TR>
                                 <TD><INPUT style="WIDTH: 80px" οnclick="SaveToLocal()" type="button" value="SaveToLocal">TD>
                             TR>
                             <TR>
                                 <TD><INPUT style="WIDTH: 80px" οnclick="SaveToWeb()" type="button" value="SaveToWeb">TD>
                             TR>
                             <TR>
                                 <TD><INPUT style="WIDTH: 80px" type="button" value="Track" οnclick="Track()">TD>
                             TR>
                             <TR>
                                 <TD><INPUT style="WIDTH: 80px" type="button" value="UnTrack" οnclick="UnTrack()">TD>
                             TR>
                             <TR>
                                 <TD><INPUT style="WIDTH: 80px" type="button" value="ShowTrack" οnclick="ShowTrack()">TD>
                             TR>
                             <TR>
                                 <TD><INPUT style="WIDTH: 80px" type="button" value="Print">TD>
                             TR>
                             <TR>
                                 <TD><INPUT style="WIDTH: 80px" type="button" value="Close">TD>
                             TR>
                         TABLE>
                     TD>
                     <TD>
                         <OBJECT id="FramerControl1" codeBase="dsoframer.ocx" height="100%" width="99%" classid="clsid:00460182-9E5E-11D5-B7C8-B8269041DD57"
                             VIEWASTEXT>
                             <PARAM NAME="_ExtentX" VALUE="16960">
                             <PARAM NAME="_ExtentY" VALUE="13600">
                             <PARAM NAME="BorderColor" VALUE="-2147483632">
                             <PARAM NAME="BackColor" VALUE="-2147483643">
                             <PARAM NAME="ForeColor" VALUE="-2147483640">
                             <PARAM NAME="TitlebarColor" VALUE="-2147483635">
                             <PARAM NAME="TitlebarTextColor" VALUE="-2147483634">
                             <PARAM NAME="BorderStyle" VALUE="1">
                             <PARAM NAME="Titlebar" VALUE="0">
                             <PARAM NAME="Toolbars" VALUE="1">
                             <PARAM NAME="Menubar" VALUE="1">
                         OBJECT>
                     TD>
                 TR>
             TABLE>
         form>
     body>
HTML>

Default.aspx.cs部分
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace WebOffice
{
     ///
     /// Default 的摘要说明。
     ///
     public class _Default : System.Web.UI.Page
     {
    
         private void Page_Load(object sender, System.EventArgs e)
         {
            
         }

         #region Web 窗体设计器生成的代码
         override protected void OnInit(EventArgs e)
         {
             //
             // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
             //
             InitializeComponent();
             base.OnInit(e);
         }
        
         ///
         /// 设计器支持所需的方法 - 不要使用代码编辑器修改
         /// 此方法的内容。
         ///
         private void InitializeComponent()
         {    
             this.Load += new System.EventHandler(this.Page_Load);

         }
         #endregion

         private void Button1_Click(object sender, System.EventArgs e) {
             Response.Redirect("SaveDoc.aspx");
         }
     }
}


接收文件的SaveDoc.aspx页面

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
     <HEAD>
         <title>SaveDoc</< SPAN>title>
         <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
         <meta content="C#" name="CODE_LANGUAGE">
         <meta content="JavaScript" name="vs_defaultClientScript">
         <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
         <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
     </< SPAN>HEAD>
     <body MS_POSITIONING="GridLayout">
         <form id="Form1" method="post" runat="server" encType="multipart/form-data">
         </< SPAN>form>
     </< SPAN>body>
</< SPAN>HTML>

SaveDoc.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Net;

namespace WebOffice {
     ///
     /// SaveDoc 的摘要说明。
     ///
     public class SaveDoc : System.Web.UI.Page {

         readonly int enterCount = 12;
         string[] requestValues = new string[2];
         private void Page_Load(object sender, System.EventArgs e) {
             string newFile = Server.MapPath(".")+"\\Document\\" + DateTime.Now.ToFileTime().ToString() + "NewDoc.doc";
             FileStream newDoc = new FileStream(newFile,FileMode.Create,FileAccess.Write);
             BinaryReader br = new BinaryReader(Request.InputStream);
             BinaryWriter bw = new BinaryWriter(newDoc);
             br.BaseStream.Seek(0,SeekOrigin.Begin);
             bw.BaseStream.Seek(0,SeekOrigin.End);

             int enterNo = 0;
             int streamHeadLen = 0;
             while(br.BaseStream.Position < br.BaseStream.Length) {
                 streamHeadLen ++;
                 char c = (char)br.ReadByte();
                 if(enterNo < enterCount){
                     if(c == '\n'){
                         enterNo ++;
                     }    
                 }
                 else{
                     break;
                 }
             }

             br.BaseStream.Seek(0,SeekOrigin.Begin);
             string strTemp = System.Text.UTF8Encoding.Default.GetString(br.ReadBytes(streamHeadLen - 1));

             while(br.BaseStream.Position < br.BaseStream.Length - 38) {
                 bw.Write(br.ReadByte());
             }

             br.Close();
             bw.Flush();
             bw.Close();

             string[] requestStrings = {"RecordID","UserID"};
             for(int i=0;i<requestStrings.Length;i++){
                 string str = "Content-Disposition: form-data; name=\""+requestStrings +"\"\r\n\r\n";
                 int index = strTemp.IndexOf(str) + str.Length;
                 if( index != str.Length - 1){
                     for(int j=index;j<strTemp.Length;j++){
                         if(strTemp[j] != '\r')    
                             this.requestValues   += strTemp[j];
                         else    
                             break;
                     }
                 }
             }
         }

         #region Web 窗体设计器生成的代码
         override protected void OnInit(EventArgs e) {
             //
             // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
             //
             InitializeComponent();
             base.OnInit(e);
         }
        
         ///
         /// 设计器支持所需的方法 - 不要使用代码编辑器修改
         /// 此方法的内容。
         ///
         private void InitializeComponent() {    
             this.Load += new System.EventHandler(this.Page_Load);
         }
         #endregion
     }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值