.Net Project/ASP.NET 3.5 Sp1
25-6장 ASP.NET 자료실 만들기 (Modify)
Magic_kit
2009. 10. 15. 11:59
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Modify.aspx.cs" Inherits="Upload_Modify" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>글 수정</title>
</head>
<body>
<form id="form1" runat="server">
<div>
이름 :
<asp:TextBox ID="txtName" runat="server"></asp:TextBox><br />
이메일 :
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox><br />
홈페이지 :
<asp:TextBox ID="txtHomepage" runat="server"></asp:TextBox><br />
제목 :
<asp:TextBox ID="txtTitle" runat="server"></asp:TextBox><br />
내용 :
<asp:TextBox ID="txtContent" runat="server"
TextMode="MultiLine" Columns="20" Rows="5"></asp:TextBox><br />
파일첨부 :
<asp:FileUpload ID="ctlFileName" runat="server" />
<asp:HiddenField ID="hidFileName" runat="server" />
<asp:HiddenField ID="hidFileSize" runat="server" />
<br />
인코딩 :
<asp:RadioButtonList ID="lstEncoding" runat="server"
RepeatDirection="Horizontal"
RepeatLayout="Flow">
<asp:ListItem Selected="true">Text</asp:ListItem>
<asp:ListItem>HTML</asp:ListItem>
<asp:ListItem>Mixed</asp:ListItem>
</asp:RadioButtonList>
<br />
암호 :
<asp:TextBox ID="txtPassword" runat="server"
TextMode="Password"></asp:TextBox><br />
<br />
<asp:LinkButton ID="btnModify" runat="server"
onclick="btnModify_Click">수정</asp:LinkButton>
<a href="View.aspx?Num=<%= Request["Num"] %>">취소</a><br />
<asp:Label ID="lblError" runat="server" ForeColor="Red"></asp:Label>
</div>
</form>
</body>
</html> |
using System;
using System.IO;
public partial class Upload_Modify : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(Request["Num"]))
{
Response.Write("잘못된 요청입니다.");
Response.End();
}
else
{
if (!Page.IsPostBack) //***** 처음 로드할 때만 예전 데이터 읽어오기
{
DisplayData();
}
}
}
private void DisplayData()
{
UploadEntity ue = new UploadEntity();
UploadBiz ub = new UploadBiz();
ue = ub.ViewUpload(Convert.ToInt32(Request["Num"]));
// 각각의 컨트롤에 바인딩
txtName.Text = ue.Name;
txtEmail.Text = ue.Email;
txtTitle.Text = ue.Title;
txtHomepage.Text = ue.Homepage;
txtContent.Text = ue.Content;
// 수정 페이지에서 추가
hidFileName.Value = ue.FileName;
hidFileSize.Value = ue.FileSize.ToString();
// 예전 인코딩에 따른 라디오버튼 리스트 선택
if (ue.Encoding.ToLower() == "html")
{
lstEncoding.SelectedIndex = 1;
}
else if (ue.Encoding.ToLower() == "mixed")
{
lstEncoding.SelectedIndex = 2;
}
else
{
lstEncoding.SelectedIndex = 0; // 기본값
}
}
protected void btnModify_Click(object sender, EventArgs e)
{
// 파일 업로드
string strDirectory = Server.MapPath(".") + "\\files\\"; //
string strFileName = String.Empty;
int intFileSize = 0;
if (!String.IsNullOrEmpty(ctlFileName.FileName))
{ // 첨부된 파일이 있다면,
// 파일명 추출
strFileName =
// 파일명 중복처리 필요
UploadUtil.GetFilePath(strDirectory, ctlFileName.FileName);
// (경로 + 파일명)으로 저장 실행
ctlFileName.PostedFile.SaveAs
(Path.Combine(strDirectory, strFileName));
intFileSize = ctlFileName.PostedFile.ContentLength; // 파일사이즈
}
else
{
strFileName = hidFileName.Value;
intFileSize = Convert.ToInt32(hidFileSize.Value);
}
// DB 저장
UploadBiz ub = new UploadBiz();
UploadEntity ue = new UploadEntity();
ue.Num = Convert.ToInt32(Request["Num"]);
ue.Name = txtName.Text;
ue.Email = txtEmail.Text;
ue.Title = txtTitle.Text;
//ue.PostIP = Request.UserHostAddress;
ue.Content = txtContent.Text;
ue.Password = txtPassword.Text;
ue.Encoding = lstEncoding.SelectedValue;
ue.Homepage = txtHomepage.Text;
ue.FileName = strFileName; // 변경...
ue.FileSize = intFileSize; // 변경...
ue.ModifyDate = DateTime.Now;
ue.ModifyIP = Request.UserHostAddress;
int result = ub.ModifyUpload(ue);
if (result == -1)
{
lblError.Text = "암호가 틀립니다.";
}
else
{
// 상세보기로 이동
Response.Redirect("View.aspx?Num=" + Request["Num"]);
}
}
} |