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
}
}
在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
}
}
相关文章推荐
- ecshop助理上传报错 无法连接服务器:XML 文档只能有一个顶层元素。line2 <b> Deprecated</b>:Assignig the Deprecated</b>: 7510
- iOS json解析遇到@"";@"<null>";null 处理
- FreeMarker解析List<JSONObject>数据的疑惑
- GPS数据处理---< 一 >---数据格式
- (服务器控件)页面框架处理回发数据的过程
- <input type="file">更改 页面显示 浏览 为上传 .
- [iOS] dom解析xml数据,拿到<>里面的值
- 如何回滚请求<复制系统初始的数据>所处理的数据
- JavaScript中利用<script>获取非同源服务器的数据(规避同源策略)
- 使用万能表单解析程序将表单数据封装成List<Map>
- 大数据处理之道(实验方法<二>)
- jsp页面中有些div里面的内容用<!-- -->注释掉了,本以为是多余的,仔细一看还有slice() (上传过程等待效果)
- android定位已获取经纬度,上传google解析后textview不显示,基础问题,求大神解答~~>_<`
- 在html中,怎么改变<table><form>在页面显示的位置?
- MFC中的消息处理----<深入解析MFC>读书笔记
- JSP EL表达式<c:forEach> 页面获取hibernate联级对象数据
- GPS数据处理---< 二 >---数据处理
- Json解析简单数据<二>
- iOS之数据解析时<null>的处理