using System;
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;
namespace ezhanja.Testing.FileUpload
{
/// <summary>
/// WebForm1에 대한 요약 설명입니다.
/// </summary>
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.HtmlControls.HtmlInputFile File1;
protected System.Web.UI.WebControls.Label Label1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.HtmlControls.HtmlInputButton Submit1;
private void Page_Load(object sender, System.EventArgs e)
{
// 여기에 사용자 코드를 배치하여 페이지를 초기화합니다.
Response.Write( Server.MapPath("\\저장위치") );
}
#region Web Form 디자이너에서 생성한 코드
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 이 호출은 ASP.NET Web Form 디자이너에 필요합니다.
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 디자이너 지원에 필요한 메서드입니다.
/// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오.
/// </summary>
private void InitializeComponent()
{
this.Submit1.ServerClick += new System.EventHandler(this.Submit1_ServerClick);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
private void Submit1_ServerClick(object sender, System.EventArgs e)
{
if ( (this.File1.PostedFile !=null) && (this.File1.PostedFile.ContentLength > 0 ) )
{
try
{
string lastSaveName = SaveFile(this.File1); 호출
Response.Write("마지막저장:"+lastSaveName);
}
catch(System.Exception es){
this.Label2.Text ="<br><b>"+es.ToString()+"</b>";
}
}
else
{
this.Label1.Text ="업로드파일을 선택해주세요!";
}
}
public string SaveFile(System.Web.UI.HtmlControls.HtmlInputFile hFile){
//Util.Util.saveDataPath는 파일이 저장되는 위치입니당.~
//세이브
string LastSaveName;
//경로를 포함한 전체이름
string totalFileName = hFile.PostedFile.FileName;
//파일네임
string realFileName = System.IO.Path.GetFileName(totalFileName);
if(!CheckSameFile(realFileName))
{
//Response.Write("중복되는 이름없따 저장완료!!!");
hFile.PostedFile.SaveAs( Util.Util.saveDataPath+realFileName );
LastSaveName=realFileName;
}
else{
//파일확장명
string fileExtension = System.IO.Path.GetExtension( realFileName );
//확장명을 땐파일 네임
string fileNameWithoutExtension= System.IO.Path.GetFileNameWithoutExtension(realFileName);
string TempRealFileName = realFileName; //확장자까지 붙어있는 파일네임 test.aspx
//같은 파일네임이있다면 계속돌아주라
int i=1;
while( CheckSameFile(TempRealFileName) )
{
string TempFileNameWithoutExtension = System.IO.Path.GetFileNameWithoutExtension(realFileName);
string TempFileExtension = System.IO.Path.GetExtension( TempRealFileName );
TempRealFileName=TempFileNameWithoutExtension+"("+i+")"+TempFileExtension;
i++;
}
//실질적인 저장
hFile.PostedFile.SaveAs( Util.Util.saveDataPath+ TempRealFileName );
LastSaveName = TempRealFileName;
}
return LastSaveName;
}
#region 같은 파일네임 체크
/// <summary>
/// 디렉토리에 같은 파일이 있는지를 체크합니다.
/// 파일은 Util.Util.saveDataPath 에서 체크합니다.
/// </summary>
/// <returns>파일이있으면 true 없으면 false </returns>
public bool CheckSameFile( string fileName)
{
if ( System.IO.File.Exists(Util.Util.saveDataPath+fileName) )
{
return true;
}
else{
return false;
}
}
/// <summary>
/// 경로와 파일네임을 입력하면 파일이 있는지 없는지를 체크합니다
/// </summary>
/// <param name="filePath">파일디렉토리</param>
/// <param name="fileName">검색하고자 하는 파일네임</param>
/// <returns>파일이있으면 true 없으면 false </returns>
public bool CheckSameFile(string filePath , string fileName){
if ( System.IO.File.Exists(filePath+fileName) )
{
return true;
}
else
{
return false;
}
}
#endregion
}
}
'C#.NET IO' 카테고리의 다른 글
[System.Data.Linq.Binary / SaveFileDialog ] 파일 저장하기 (0) | 2010.08.03 |
---|---|
[Linq.Binary]초간단 openFileDialog 파일 읽기/쓰기 (0) | 2010.04.06 |
구조체와 클래스를 파일로 입력 및 출력 (0) | 2010.01.03 |
디렉토리생성시 중복디렉토리 네임 방지 (0) | 2010.01.03 |
[ DriveInfo ] 하드 디스크 정보 및 사용량을 알고 싶을때 (0) | 2010.01.03 |
[Serialize] 클래스 파일로 저장하기 및 불러오기 (0) | 2009.12.15 |
[ MSDN ] 하드 디스크 정보 및 사용량을 알고 싶을때 (0) | 2009.12.15 |
응용 프로그램의 현재 작업 디렉터리를 가져오기 (0) | 2009.04.27 |