您的位置:首页 > 其它

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

2011-12-04 17:30 681 查看
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" onclick="NewDoc()" type="button" value="New">TD>

TR>

<TR>

<TD><INPUT style="WIDTH: 80px" onclick="OpenDoc()" type="button" value="Open">TD>

TR>

<TR>

<TD><INPUT style="WIDTH: 80px" onclick="OpenWebDoc()" type="button" value="OpenWeb">TD>

TR>

<TR>

<TD><INPUT style="WIDTH: 80px" onclick="SaveToLocal()" type="button" value="SaveToLocal">TD>

TR>

<TR>

<TD><INPUT style="WIDTH: 80px" onclick="SaveToWeb()" type="button" value="SaveToWeb">TD>

TR>

<TR>

<TD><INPUT style="WIDTH: 80px" type="button" value="Track" onclick="Track()">TD>

TR>

<TR>

<TD><INPUT style="WIDTH: 80px" type="button" value="UnTrack" onclick="UnTrack()">TD>

TR>

<TR>

<TD><INPUT style="WIDTH: 80px" type="button" value="ShowTrack" onclick="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

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: