using System; using System.Data; using System.Linq; using System.Web.UI; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.ServiceModel; using SuperMap.RealEstate.Utility; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using System.IO; using System.Web; namespace SuperMap.RealEstate.HighWay.Running { /// /// T_ATTACHMENT_附件上传 的WebUserControl /// public partial class ATTACHMENT : UserControl { Running.Business.HIGHWAYPROINST _HighWayProInst = null; protected override void OnInit(EventArgs e) { Common.PageHelper.CreateHeaderStyle(Page); _HighWayProInst = Running.Business.HIGHWAYPROINST.CreateInstance(Page); //隐藏打印受理单按钮 this.ButtonVisible = false; base.OnInit(e); } protected void Page_Load(object sender, EventArgs e) { } //在此加入界面的数据初始化(Page_Load之前),如DropDownList的数据源绑定等 public override void InitializeWebControl() { } //载入数据 public override bool LoadData() { //绑定对应的控件 BindRepick(); //如果是工作流组件请自行修改载入的逻辑,以下是功能模块的默认代码 if (!String.IsNullOrEmpty(Request["ID"])) { CurrObject.ATTACHMENT_ID_Encrypt = Request["ID"]; return this.Select(); } //默认返回值,工作流组件返回True,功能模块返回False。 return (WorkFlowPage != null); } //OnDataAction_XXXXX 有一个系列可用,在此加入界面的逻辑处理 //e.CancelDataAction 来处理是否取消该动作; //失败的原因可以用Page.Alert()传递到页面 public override void OnDataAction_BeforeSave(DataActionEventArgs e) { base.OnDataAction_BeforeSave(e); } private void BindRepick() { //绑定对应的控件 Repeater1.DataSource = (new Business.ATTACHMENT(Transaction)).ExecuteDataTable( "SELECT * FROM T_ATTACHMENT where PROINST_ID = " + this._HighWayProInst.HIGHWAYPROINST_ID); Repeater1.DataBind(); } public byte[] StreamToBytes(Stream stream) { byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); // 设置当前流的位置为流的开始 stream.Seek(0, SeekOrigin.Begin); return bytes; } protected void CallBackButton1_Click(object sender, EventArgs e) { if (mFileUpload.FileName.ToString() == "") { Page.Alert("请选择文件!"); return; } string ImagePathSrc = string.Empty; string newname = string.Empty; if (mFileUpload.HasFile) { Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(); string extension = Path.GetExtension(mFileUpload.PostedFile.FileName).ToLower(); if (extension == ".jpg" || extension == ".gif" || extension == ".png" || extension == ".doc" || extension == ".docx" || extension == ".rar") { _ATTACHMENT.ATTACHMENT_CONTENT = StreamToBytes(mFileUpload.PostedFile.InputStream); _ATTACHMENT.ATTACHMENT_NAME = mFileUpload.PostedFile.FileName.Substring(mFileUpload.PostedFile.FileName.LastIndexOf("\\") + 1); _ATTACHMENT.CREATEDATE = DateTime.Now; _ATTACHMENT.PROINST_ID = _HighWayProInst.HIGHWAYPROINST_ID; _ATTACHMENT.Insert(); BindRepick(); } else { Page.Alert("只允许上传 Jpg,gif,png,doc,docx,rar文件"); } } } protected void LinkButton_Click(object sender, EventArgs e) { LinkButton LinkButton = sender as LinkButton; //下载内容 Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(); _ATTACHMENT.ATTACHMENT_ID_Encrypt = LinkButton.Attributes["base-code"]; if (_ATTACHMENT.Select()) { System.IO.MemoryStream ms = new System.IO.MemoryStream(); string uploadPath = HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile/") + "\\" + ((!string.IsNullOrEmpty(_ATTACHMENT.PRESONNAME) && !string.IsNullOrEmpty(_ATTACHMENT.ATTACHMENT_DESC)) ? _ATTACHMENT.PRESONNAME + "\\" + _ATTACHMENT.ATTACHMENT_DESC : _ATTACHMENT.ATTACHMENT_NAME); HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Buffer = true; HttpContext.Current.Response.Charset = "utf-8"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");//设置输出流为简体中文 HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename=" + ((!string.IsNullOrEmpty(_ATTACHMENT.PRESONNAME) && !string.IsNullOrEmpty(_ATTACHMENT.ATTACHMENT_DESC)) ? _ATTACHMENT.ATTACHMENT_DESC : _ATTACHMENT.ATTACHMENT_NAME), DateTime.Now.ToString("yyyyMMddHHmmssfff"))); HttpContext.Current.Response.BinaryWrite(System.IO.File.ReadAllBytes(uploadPath)); HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 HttpContext.Current.Response.End(); ms.Close(); ms.Dispose(); } } protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == System.Web.UI.WebControls.ListItemType.Item || e.Item.ItemType == System.Web.UI.WebControls.ListItemType.AlternatingItem || e.Item.ItemType == System.Web.UI.WebControls.ListItemType.SelectedItem) { DataRowView _DataRowView = (DataRowView)e.Item.DataItem; LinkButton LinkButton = e.Item.FindControl("LinkButton") as LinkButton; LinkButton.ToolTip = (!string.IsNullOrEmpty(_DataRowView["ATTACHMENT_DESC"].ToString()) && !string.IsNullOrEmpty(_DataRowView["PRESONNAME"].ToString())) ? _DataRowView["ATTACHMENT_DESC"].ToString() : _DataRowView["ATTACHMENT_NAME"].ToString(); LinkButton.Text = "" + (LinkButton.ToolTip.Length > 30 ? LinkButton.ToolTip.Substring(0, 25) + "..." : LinkButton.ToolTip) + ""; LinkButton.Attributes["base-code"] = _DataRowView["ATTACHMENT_ID"].ToEncrypt(); if (this.ModifyType == ModifyTypeEnum.ReadOnly || this.ModifyType == ModifyTypeEnum.ReadOnlyVisible) { ; } else { LinkButton DelButton = e.Item.FindControl("DelButton") as LinkButton; DelButton.Text = ""; DelButton.Attributes["base-code"] = _DataRowView["ATTACHMENT_ID"].ToEncrypt(); } } } protected void DelButton_Click(object sender, EventArgs e) { try { LinkButton LinkButton = sender as LinkButton; Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(Transaction); _ATTACHMENT.ATTACHMENT_ID_Encrypt = LinkButton.Attributes["base-code"].ToString(); if (_ATTACHMENT.Select()) { if (!string.IsNullOrEmpty(_ATTACHMENT.PRESONNAME) && !string.IsNullOrEmpty(_ATTACHMENT.PRESONNAME)) { if (Directory.Exists(HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile/") + "\\" + _ATTACHMENT.PRESONNAME)) { Directory.Delete(HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile/") + "\\" + _ATTACHMENT.PRESONNAME, true); } } else { if (Directory.Exists(HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile")) && File.Exists(HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile/") + "\\" + _ATTACHMENT.ATTACHMENT_NAME)) { File.Delete(HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile/") + "\\" + _ATTACHMENT.ATTACHMENT_NAME); } } _ATTACHMENT.Delete(); } BindRepick(); } catch { } } public override bool Save(bool AutoBindData = true) { //判断附件是否已经上传,未上传返回false Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(this.Transaction); if (_ATTACHMENT.GetCount("where PROINST_ID =" + _HighWayProInst.HIGHWAYPROINST_ID) == 0) { return false; } return true; //return base.Save(AutoBindData); } } }