출처 : http://younch.egloos.com/6526482

fileupload.aspx

<%@ Page Language="C#" %>
<!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>
<title></title>
</head>
<body>
<form name="test_frm" method="post" action="./fileupload_ok.aspx" enctype="multipart/form-data">
<input type="file" name="attach" /><br />
<input type="submit" value="확인" />
</form>
</body>
</html>


fileupload_ok.aspx

<%@ Page Language="C#" Debug="true" %>
<%@ import Namespace="System.IO" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<%@ import Namespace="System.Web" %>
<%@ import Namespace="System.Web.UI.WebControls" %>
<%
String strFileNameOri = "";
String strFileName = "";
String strNewFileName = "";
String strExtName = "";
String strFileType = "";
int intFileSize = 0;
int intFileNameSeq = 0;
FileInfo fInfo = null;
//input type="file" 객체를 받음
HttpPostedFile hpf = Request.Files["attach"];
// 업로드 위치 이스케이프에 걸리지 않기 위해서 \\사용 또는 SavePath = @"F:\home\TEST\" 형태로 사용하면 됨.
String SavePath = "F:\\home\\TEST\\upload\\";
intFileSize = hpf.ContentLength;
strFileNameOri = hpf.FileName;
strFileType = hpf.ContentType;
//파일 객체가 있을 경우
if (intFileSize > 0)
{
//파일명만 구하기
strFileName = strFileNameOri.Substring(strFileNameOri.LastIndexOf("\\") + 1, strFileNameOri.LastIndexOf(".") - strFileNameOri.LastIndexOf("\\") - 1);
//파일확장자 구하기
strExtName = strFileNameOri.Substring(strFileNameOri.LastIndexOf(".") + 1);
strNewFileName = strFileName;
if (!Directory.Exists(SavePath))
{
Directory.CreateDirectory(SavePath);
}
//파일명 중복 체크 및 새 파일명 구하기
while (true)
{
fInfo = new FileInfo(SavePath + strNewFileName + "." + strExtName);
if (fInfo.Exists)
{
intFileNameSeq++;
strNewFileName = strFileName + "_" + intFileNameSeq;
}
else
{
break;
}
}
Response.Write("파일사이즈 : " + intFileSize + "<br>");
Response.Write("원본파일 : " + strFileNameOri + "<br>");
Response.Write("파일명 : " + strNewFileName + "<br>");
Response.Write("확장자 : " + strExtName + "<br>");
//파일 저장
hpf.SaveAs(SavePath + strNewFileName + "." + strExtName);
}
else
{
Response.Write("파일 없음");
}
%>
2012/11/26 14:53 2012/11/26 14:53
IIS6 버전에서는 web.config 파일에 아래와 같이 <httpModule> 또는 <HttpHandlers>을 설정하여도 문제가 없지만,
IIS7 버전에서는 500.22 에러가 발생한다.

<system.web>
  <httpModules>
     <add name="testClass" type="Test.TestClass,test" />
  </httpModules>
</system.web>


web.config의 httpModules 설정을 아래와같이 변경하면 해결할 수 있다.

<system.web>
  <!-- 삭제 또는 주석처리
  <httpModules>
     <add name="testClass" type="Test.TestClass,test" />
  </httpModules>
  //-->
</system.web>

<!-- 아래와 같이 추가 설정 //-->
<system.webServer>
  <validation validateIntegratedModeConfiguration="false"/>
  <modules>
    <add name="testClass" type="Test.TestClass,test" />
  </modules>
</system.webServer>


참고 : http://nsinc.tistory.com/53
2012/07/10 09:23 2012/07/10 09:23
소스상에 아래와 같이 되어 있으면서 Could not load type 에러가 발생한다.
bin 디렉토리 하위에 컴파일된 dll 파일이 없기 때문이다. 
또는 asp.net 버전이 2.0이하일 경우 발생할 수 있다.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="_default" %>

CodeBehind 부분을 CodeFile로 변경하면 에러가 없을 것이다.
CodeBehind와 CodeFile 코드는 컴파일된 dll을 읽어드리는데 차이가 있다.
CodeBehind는 bin 디렉토리에 이미 컴파일된 dll 파일을 확인하지만,
CodeFile은 클라이언트로부터 요청이 오면 그때서야 새로 컴파일하여 사용한다.
추가적으로 Web.config 파일에서 세셕당 customErrors mode는 하나만 설정할 수 있다.
참고 :
http://scripting.tistory.com/491
2012/06/19 13:52 2012/06/19 13:52

asp.net 에서 UTF-8로 개발하였을 경우 한글이 깨지는 경우가 있으며,
이럴경우 web.config 파일에 아래와 같이 설정해 주면 한글이 정상적으로 보인다.


<configuration>
  <system.web>
<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="ko-KR" uiCulture="ko-KR"/>
</system.web>
</configuration>

euc-kr 로 개발하였을 경우에는 아래 코딩을 추가해 준다.

- 첫번째 방법

Response.Write("<meta http-equiv='Content-Type' content='text/html; charset=euc-kr'>")

- 두번째 방법
Response.Charset = "euc-kr";  
Response.ContentEncoding = System.Text.Encoding.GetEncoding("euc-kr");

참고 사이트 :
http://wiz.pe.kr/11
http://msdn.microsoft.com/ko-kr/library/cc438056(v=vs.71).aspx 
2011/12/19 13:40 2011/12/19 13:40

ASP.NET 에러 찾기

ASP.NET 2010/12/18 14:35
ASP.NET 같은 경우 클라이언트 브라우저에서는 일반적인 에러만 보인다.
SERVER 쪽 브라우저에서 페이지를 실행시켜야 에러메시지가 상세히 보여 SERVER쪽에서 에러페이지를 실행시켜 문제 해결을 봐야 한다.
2010/12/18 14:35 2010/12/18 14:35