using System; using System.Threading; using System.Text; 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.Configuration; using PortalComponent; using PortalComponent.UI; using PortalComponent.UI.Admin; using PortalComponent.UI.Admin.Resource; using PortalComponent.UI.Menu; using PortalComponent.UI.Page; using PortalComponent.UI.PortalInput; using PortalComponent.BL; using PortalComponent.BL.Admin; using PortalComponent.BL.Admin.Resource; namespace Portal.Admin.Resource { //================================================= //==用于百度 UEditor 的文件上传接收页面,返回 json 数据 {'url':'xxx','fileType':'xxx','original':'xxx','state':'xxx'} //==锐商企业CMS - http://www.comsharp.com //================================================= public class UEditorFileUpload : Portal.Admin.Template { //************************************************** //**本页的 Field (暂无) //************************************************** //************************************************** //**页面加载 //************************************************** private void Page_Load(object sender, System.EventArgs e) { //--------------------------------------------------- //--去掉本页的 Cache,本方法来自 Portal.Admin.Template //--------------------------------------------------- base.RemoveCache(); //--------------------------------------------------- //--临时变量,用于缓存返回的 json 数据 //--------------------------------------------------- string myStringUrl=""; string myStringFileType=""; string myStringOriginal=""; string myStringState="SUCCESS"; //--------------------------------------------------- //--调用 RandomResourceSave.Execute() 保存上传上来的图片 //--类 RandomResourceSave 的作用是截获发布来的文件,保存,并 expose 该文件的相应属性,你可以按本节介绍的相应代码替换本类 //--------------------------------------------------- RandomResourceSave myRandomResourceSave=new RandomResourceSave(base.UserName,base.RandomResourceLogicalPath); try { //--------------------------------------------------- //--如果成功,返回 SUCCESS json 数据 //--------------------------------------------------- myRandomResourceSave.Execute(); myStringState="SUCCESS"; } catch { //--------------------------------------------------- //--如果失败,返回 ERROR json 数据 //--------------------------------------------------- myStringState="ERROR"; } //--------------------------------------------------- //--返回保存的文件的 Url, Original File Name //--------------------------------------------------- myStringUrl=myRandomResourceSave.Url; myStringFileType=myRandomResourceSave.FileType; myStringOriginal=myRandomResourceSave.FileName; //--------------------------------------------------- //--保存成功后,返回 json 数据 //--------------------------------------------------- string myStringJson=string.Format("{{'url':'{0}','fileType':'{1}','original':'{2}','state':'{3}'}}",myStringUrl,myStringFileType,myStringOriginal,myStringState); Response.ContentType = "text/plain"; Response.Write(myStringJson); } //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII #region Initialization //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII //************************************************** //**调用页面初始化 //************************************************** override protected void OnInit(EventArgs e) { InitializeComponent(); base.OnInit(e); } //************************************************** //**页面初始化 //************************************************** private void InitializeComponent() { this.Load += new System.EventHandler(this.Page_Load); //--------------------------------------------------- //--截获从 /ueditor/dialogues/attachment/attachment.html 发布的 AuthenticationTicket 参数,该参数中保存的是 AuthenticationTicket Cookie //--我们使用 SWFUpload 内嵌在上面说的这个页面,在非 IE 浏览器,SWFUpload 没有办法发布当前 cookie 导致保存在 cookie 中的验证信息没有办法被传递到本页 (attachment.html 发布到本页) //--因此我们使用 attachment.html 中的 post_params 将登录 cookie 信息以 post 的方式发布到本页,我们在这里接收到这个信息后,在这里重新构建这个 cookie 并使用 HttpContext.Current.Request.Cookies.Set(cookie) 将送给当前 request 的 cookie //--本部分代码必须在 page load 事件之前运行 //--------------------------------------------------- HttpRequest myHttpRequest=HttpContext.Current.Request; //当前的 HttpRequest ,截获ASP环境中的 HttpRequest string myStringAuthenticationTicket=CommonHelper.ReplaceNullString(myHttpRequest.Form["AuthenticationTicket"]).Trim(); HttpCookie myHttpCookie=new HttpCookie("AuthenticationTicket",myStringAuthenticationTicket); myHttpCookie.Expires=DateTime.Now.AddMinutes(CommonHelper.ReplaceNullInt(CommonHelper.GetOption("CookieExpireInMinute"),480)); myHttpRequest.Cookies.Set(myHttpCookie); } //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII #endregion //IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII } }