2025-03-27 15:05:14 +08:00

221 lines
9.7 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
{
/// <summary>
/// T_ATTACHMENT_附件上传 的WebUserControl
/// <summary>
public partial class ATTACHMENT : UserControl<Business.ATTACHMENT>
{
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<Business.ATTACHMENT> 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("只允许上传 Jpggifpngdocdocxrar文件");
}
}
}
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 = "<span><img src='/HighWay/Resources/v1_0/Images/4950_old-versions.png' />" +
(LinkButton.ToolTip.Length > 30 ? LinkButton.ToolTip.Substring(0, 25) + "..." : LinkButton.ToolTip) + "</span>";
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 = "<span><img src='/HighWay/Resources/v1_0/Images/delete.png' /></span>";
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);
}
}
}