반응형
파일 업로드에서 파일명이 중복된 경우 파일명을 ..(1), ..(2)와 같은 형태로 변경해서 중복되지 않도록 파일명을 변경합니다.
aa.c --> aa(1).c
aa.c --> aa(2).c
(2023-05-05 코드 수정)
using System.IO;
...
public string DuplicateFile(string dir, string filename)
{
string file = Path.GetFileNameWithoutExtension(filename);
string ext = Path.GetExtension(filename);
string new_filename = filename;
string temp_filename = String.Empty;
int cnt = 1;
while (File.Exists(new_filename))
{
temp_filename = String.Format("{0}({1})", file, cnt++);
new_filename = Path.Combine(dir + "\\" + temp_filename + ext);
}
return temp_filename + ext; // 파일명만 반환
}
protected void Button1_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
string filename = FileUpload1.FileName;
string file1 = Server.MapPath("/pub") + "\\" + filename;
// 파일명 중복 체크
if (File.Exists(file1))
filename = DuplicateFile(Server.MapPath("/pub"), file1);
file1 = Server.MapPath("/pub") + "\\" + filename;
FileUpload1.SaveAs(file1);
HyperLink1.NavigateUrl = "pub/" + filename;
HyperLink1.Text = filename;
ListBox1.Items.Clear();
ListBox1.Items.Add("파일명:" + file1);
ListBox1.Items.Add("파일명(filename):" + filename);
ListBox1.Items.Add("파일크기:" +
FileUpload1.PostedFile.ContentLength);
ListBox1.Items.Add("파일타입:" +
FileUpload1.PostedFile.ContentType);
}
}
반응형
반응형
'C#_ASP.NET' 카테고리의 다른 글
(ASP.NET, C#) 그리드뷰 GridView 컨트롤의 자동 서식 (0) | 2023.05.11 |
---|---|
(ASP.NET, C#) 그리드뷰 GridView 데이터 소스 구성, 페이징 설정 (0) | 2023.05.11 |
(ASP.NET, C#) DropDownList 컨트롤 Text Value 쌍 (0) | 2023.05.10 |
(ASP.NET C#) 이미지 카운터 만들기 (0) | 2023.05.09 |
(C# ASP.NET) 웹폼(Web Form) 시작하기 : 따라하기 (0) | 2023.04.25 |