各位大虾,搞了半天还是差那么一点没搞出来 先讲一下我的思路吧, 假设在编辑器中做一个按钮(插入图片),就弹出一个页面(我之前做的上传图片到服务器的页面C#),上传完之后,返回一个图片路径的值 于是编辑器中就可以显示<img src="图片在服务器上的路径"....> 要的就是这种效果 想法就是在upload.aspx中上传图片后记录下路径,在传给在线编辑器,请问怎么传和怎么接收? 各位大虾也可以讲讲自己的思路呀,小弟在此先谢过了!
解决方案 »
- 100分问一简单问题,是关于询问对话框的,具体看详细!!!
- 求助 application和 cache 数据丢失
- VS2008 动态加载控件
- asp.net 使用 CrystalReport 打印默认为pdf格式可以打印,但我改为ActiveX格式就没反应了,是不是我少装了什么东西?
- 菜鸟简单问题,关于网站移值问题!
- 简单问题,如何在visual 2003.net中使用cookie,session
- 非常着急!!asp.net 2.0使用了导航中的menu和treeview控件,上传到虚拟主机后图片,样式表和js都不能显示。怎么办?
- asp.net生成html页面后,如何让回复也成为html,然后添加到原来生成的html页面中。急啊
- .net接受不了ASP的FORM post过来的数据吗??在线等,急急
- asp.net分步注册,变量如何传?
- aspx页面调用后台数据 <变为< 怎么办
- NETGridView控件怎样在运行期用代码获取模板列的Item和Edit部分定义?
//建立一个xmlDocumnet的对象 function creatDomDocument()
{
//将一个新的ActiveXObject对象示例为一个Msxml2.DOMDocument.3.0的对象类型
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
//声明async的属性为fasle,即同步加载xml文档
xmlDoc.async = true;
//如果调用函数时有参数
if(arguments.length > 0)
xmlDoc.loadXML(arguments[0]); //把第一个参数以xml的形式存储到xmlDoc对象中,且必须符合xml格式
return xmlDoc; //返回xmlDoc对象
}
var innerXmlHttp = null;
function XmlSend(StrURL,xmlDoc,bAsync)
{
//创建了一个Msxml2.DOMDocument.3.0的对象,它是一个COM对象,它为客户机与Http服务器的交互提供了一种方法
var innerXmlHttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
//调用open方法,传递三个参数"Post",StrURL(要请求的aspx的页面),bAsync(表示调用同步或者异步方式)
innerXmlHttp.open("POST",StrURL,bAsync);
if(bAsync)
{
innerXmlHttp.onreadystatechange = StateChange;
}
innerXmlHttp.send(xmlDoc);
if(!bAsync)
{
if(innerXmlHttp.responseXML.xml.length > 0)
return innerXmlHttp.responseXML;
else
return creatErrorXML(innerXmlHttp.responseText,"");
}
}
function StateChange()
{
if(innerXmlHttp.readyState == 4)
{
// Result中存有上传后的图片地址和上传是否成功的状态信息
var Result = innerXmlHttp.responseXML;
// 解析这个xml文件得到后台返回上传成功的结果后
// 把解析到的结果用js赋值给编辑器
}
}这里是后台代码
protected void Page_Load(object sender, EventArgs e)
{
//(1)把请求的流装换为XmlDocument
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(Request.InputStream); //(2)分析请求,获得请求,并把获得的请求放入一个xml中中
XmlDocument xmlPicInfo = newXmlDocument();
xmlPicInfo = 调用一个方法,上传图片并把图片路径和上传成功与否信息
放在一个xml中; //(3)返回数据
XmlDocument xmlResult = new XmlDocument();
xmlResult.LoadXml(你生成的存有结果的xml文件);
Response.ContentType = "text/xml";
xmlResult.Save(Response.OutputStream);
Response.End();
}
这样做虽然麻烦,不过能让你更深刻的理解ajax异步传输的机制预祝国庆节快乐!~~
function UploadClick()
{
var xmlDoc = creatDomDocument("<node>"+ TxtID +"</node>");
var xmlResult = XmlSend("Request.aspx",xmlDoc,true); // 这个xmlResult就是上面的XmlSend函数中返回的结果
// 在这里对xml对象用xpath解析然后在紧系赋值就可以了
}
</script>
<input type="button" value="上传文件" onclick="UploadClick()"/>我的思路就是这样,如果嫌麻烦,可以直接引用那些开源的ajax,比如jquery,ajaxpro等等希望对你有帮助~
http://topic.csdn.net/u/20080929/18/a7ebef7d-873f-4af6-a8ae-8ad10ed8a44e.html