간단하게 만들었던 업로드 하는 컨트롤
<%@ Control Language="C#" ClassName="postImage" %>
<%@ Import Namespace="System.IO" %>
<script runat="server">protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile == true)
{
string upDir = Server.MapPath(".") + "\\upload\\";
DirectoryInfo di = new DirectoryInfo(upDir);
if (di.Exists == false)
di.Create();string fName = FileUpload1.FileName;
string fFullName = upDir + fName;
FileInfo fInfo = new FileInfo(fFullName);if (fInfo.Exists == true)
{
int findex = 0;
string fExt = fInfo.Extension;
string fRealName = fName.Replace(fExt, "");string newFileName = "";
do
{
findex++;
newFileName = fRealName + "_" + findex.ToString() + fExt;
fInfo = new FileInfo(upDir + newFileName);
} while (fInfo.Exists);fFullName = upDir + newFileName;
fName = newFileName;
}FileUpload1.PostedFile.SaveAs(fFullName);
fInfo = new FileInfo(fFullName);Panel1.Visible = true;
lblMessage.Text = "업로드 된 파일 : " + fFullName + "\n<br />";
/*lblMessage.Text += "업로드 사이즈 : "
+ Convert.ToString(int.Parse(Convert.ToString(float.Parse(fInfo.Length.ToString()) / 1024.0f)))
+ "KB";*/
Image1.ImageUrl = "../upload/" + fName;
HiddenField1.Value = "upload/" + fName;
}
else
{
Panel1.Visible = true;
lblMessage.Text = "업로드 할 파일이 존재하지 않습니다.";
}
}</script>
<div class="titleText">이미지를 등록해주세요</div>
<br />
<div class="noticeText">* 이미지는 명함, 반명함 사진으로 확장자는<br /> gif, jpg, png 등으로만 올려주시기 바랍니다.</div>
<br />
<div id="fileImage">
<asp:FileUpload ID="FileUpload1" runat="server" Width="200px" /> <br />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="사진 파일 올리기" /><br />
</div>
<p></p>
<asp:Panel ID="Panel1" runat="server" Height="50px" Width="298px" Visible="False">
<asp:Label ID="lblMessage" runat="server"></asp:Label><br />
<asp:Image ID="Image1" runat="server" Width="130" /><br /><br />
</asp:Panel>
<asp:HiddenField ID="HiddenField1" runat="server" />
간단하게 만들었던 이미지 업로드 컨트롤 *.ascx 파일로 만들어두면 편하다.
참 급조로 만든거라 상당히 부실한 -_ -;;;
요래 코딩하면 안되는뎅;;
반성 반성~
만약에 업로드하는 부분만 메소드로 뺀다면 ...
/// <summary>
/// 이미지를 업로드 한 후 저장된 파일 경로를 반환한다.
/// </summary>
/// <param name="FileUp">업로드 컨트롤</param>
/// <param name="SubCode">과목코드</param>
/// <returns></returns>
protected string ImageUpload(FileUpload FileUp, int SubCode)
{
string ret = ""; // 반환할 문자열
string upDir = ""; // 업로드할 파일 저장 위치
string fName = ""; // 업로드된 실제 파일명
string fFullName = ""; // 저장할 파일의 풀 경로
string fExt = ""; // 파일의 확장자명
string fRealName = ""; // 파일의 확장자를 뺀 실제 파일명
string newFileName = "";// 새로 만들어질 파일명int findex = 0; // 파일의 인덱스번호
System.IO.DirectoryInfo di = null;
System.IO.FileInfo fInfo = null;
// 파일이 있나?
if (FileUp.HasFile == true)
{
// 저장할 경로
upDir = Server.MapPath("..") + "\\upload\\exam\\" + SubCode.ToString();
// 경로에 디렉토리가 없으면 만든다.
di = new System.IO.DirectoryInfo(upDir); // 디렉토리를 다룰 연장
if (di.Exists == false)
di.Create();// 업로드 된 파일을 가지고 저장할 파일의 풀 경로를 만들어낸다.
fName = fileup.FileName;
fFullName = upDir + fName;
fInfo = new System.IO.FileInfo(fFullName); // 파일을 다룰 연장// 이미 해당하는 파일이 있으면
if (fInfo.Exists == true)
{
fExt = fInfo.Extension;
fRealName = fName.Replace(fExt, "");// 루프를 돌면서 실제 저장될 파일명을 결정한다.
do
{
findex++;
newFileName = fRealName + "_" + findex.ToString() + fExt;
fInfo = new System.IO.FileInfo(upDir + newFileName);
} while (fInfo.Exists);fFullName = upDir + newFileName;
fName = newFileName;
}FileUp.PostedFile.SaveAs(fFullName);
fInfo = new System.IO.FileInfo(fFullName);ret = "../upload/" + fName;
}
return ret;
}
댓글
이 글 공유하기
다른 글
-
FarPoint Spread를 이용한 ActiveX 페이지와 스크립트 제어
FarPoint Spread를 이용한 ActiveX 페이지와 스크립트 제어
2007.05.23 -
ASP.NET Session StateServer
ASP.NET Session StateServer
2007.05.22 -
ASP.NET 페이지 캐쉬를 사용하지 않도록...
ASP.NET 페이지 캐쉬를 사용하지 않도록...
2007.05.18 -
ASP.NET 2.0 AJAX Extensions 1.0
ASP.NET 2.0 AJAX Extensions 1.0
2007.05.01