본문 바로가기

ASP.NET

Exists_ 파일명 출력하기

게시판의 해당 글을 보여줄 때, 해당 글의 File이 첨부되있었다면 다음과 같이 출력한다.
- 업로드된 파일이 없을 경우: 첨부파일 -
- 업로드된 파일이 있을 경우: 첨부파일 upLoadFileImg.jpg
- 업로드된 파일이 있지만 해당 파일이 존재하지 않을 경우: 첨부파일 upLoadFileImg.jpg


다음과같이 출력하기 위해서는 업로드된 File이 실제로 존재하는지 
File이 저장된 경로를 찾아 File이 존재하는지 알아봐야한다.

//파일의 가상경로를 통해 web.config에 저장된 실제 경로를 반환하여 변수 defaultPath에 저장한다.
string defaultPath = Sever.MapPath(ConfigurationManager.AppSettings["BoardFile"]);

web.config에 저장된 실제경로
<add key="BoardFile" value="~/DataRoom/BoardFile/"/>
value값은 내가 임의로 정한 파일이 저장되있는 폴더의 위치를 정의해주면 된다.

//row["bFile"].ToString(): DB에 저장된 파일명을 가져와 변수 bFileStr에 저장한다.
string
bFileStr = row["bFile"].ToString();

string filePath = "", imgStr = "";
if (bFileStr == "")
{
       //업로드된 파일이 없을 경우
       bFile.Text = "-";
}
else
{
        //업로드된 파일이 있을 경우
       bFile.Text = bFileStr;
       filePath = defaultPath + @"\" + bFileStr;

       FileInfo: 해당경로를 찾아 파일의 정보를 제공한다.
       FileInfo finfo = new FileInfo(filePath);

       if (finfo.Exists)
       {
              imgStr = "<img src=\"/DataRoom/boardFile/" + bFileStr + "\">";
       }
       else
       {
              //업로드된 파일이 있지만 해당 파일이 존재하지 않을 경우
              bFile.Text = "<s>" + bFileStr + "</s>";
       }
       //글 본문에 업로드 된 이미지 삽입하기.
       bConts.Text += imgStr;
}