ASP에서 파일다운로드시 파일 확장자별 ContentType 설정에 관한 내용입니다.


사용법

Ex)

Response.ContentType = "application/vnd.ms-excel"

Response.AddHeader "Content-Disposition" , "attachment; filename=test.xls"

 

-----------------------------------------------------------------

.asf : video/x-ms-asf                               asf동영상 파일
.asp : text/asp                                        asp소스 파일
.avi : video/x-msvideo                             avi동영상 파일
.bmp : image/bmp                                   비트맵이미지 파일
.css : text/css                                        CSS스타일시트 파일
.doc : application/msword                        MS워드 파일
.exe : application/octet-stream                 응용프로그램 파일
.gif : image/gif                                        gif이미지 파일
.htm : text/html                                         htm웹페이지 파일
.html : text/html                                        html웹페이지 파일
.ico : image/x-icon                                  아이콘 파일
.java : text/plain                                      자바 소스파일
.jpeg : image/jpeg                                   JPEG이미지 파일
.jpg : image/jpeg                                     JPG이미지 파일
.js : application/x-javascript                     Javascript 파일
.mp3 : audio/mpeg3                                  MP3오디오 파일
.mpeg : video/mpeg                                 MPEG동영상 파일
.mpg : audio/mpeg                                   MPG동영상 파일
.png : image/png                                     PNG이미지 파일                             
.ppt : application/vnd.ms-powerpoint         파워포인트 파일
.swf : application/x-shockwave-flash        플래쉬 파일
.txt : application/octet-stream                    txt
.xls : application/ms-excel                       엑셀 파일
.xml : application/xml                               xml 파일
.zip : application/zip                                zip압축 파일

---------------------------------------------------------------

Posted by 탁이98
,

[ASP] 에러메세지 모음

ASP 2009. 6. 18. 15:57

---------------------------------------------------------------------------------

Microsoft VBScript 런타임 오류 error '800a01a8'

개체가 필요합니다.: 에러내용

/파일명.asp, line 에러라인번호

 

- 개체이름이 잘못되었을 경우 (option explicit 상태일때는 '변수가 정의되지 않았습니다')
Ex)  resopnse.write  "test"

---------------------------------------------------------------------------------

Microsoft VBScript 런타임 오류 error '800a000d'

형식이 일치하지 않습니다.: 에러내용

/파일명.asp, line 에러라인번호


- 알 수 없는 함수
- 알 수 없는 명령어
- 소스 중간에 임의의 문자가 들어간 경우
- 데이터형식이 잘못됨(Ex. 매개변수에 배열이 들어가야하는데 배열이 아닌 변수가 들어감)
- 함수가 아닌 서브로 리턴값을 받으려 할때

---------------------------------------------------------------------------------

Microsoft VBScript 런타임 오류 error '800a01f4' 

변수가 정의되지 않았습니다.: 변수명

/파일명.asp, line 에러라인번호


- 알 수 없는 명령어, 소스 중간에 임의의 문자가 들어간 경우, 변수선언이 안되어있을때(option explicit 상태일때)

---------------------------------------------------------------------------------

Microsoft VBScript 컴파일 오류 error '800a0400'

문장이 필요합니다.

/파일명.asp, line 에러라인번호

에러소스내용


- 소스중간에 숫자가 변수나 서브처럼 사용되었을 경우

---------------------------------------------------------------------------------

Microsoft VBScript 런타임 오류 error '800a01c2'

인수의 개수나 속성 할당이 잘못되었습니다.: 함수명 or 서브명

/파일명.asp, line 에러라인번호


- 함수나 서브의 매개변수 갯수가 다름

---------------------------------------------------------------------------------

Microsoft VBScript 컴파일 오류 error '800a0414'

Sub를 호출할 때는 괄호를 사용할 수 없습니다.

/파일명.asp, line 에러라인번호

에러소스내용


- 함수를 리턴값을 받지 않고 사용하거나 서브를 call 없이 단독으로 사용하였을 경우

---------------------------------------------------------------------------------

Microsoft VBScript 컴파일 오류 error '800a0408'

유효하지 않은 문자입니다.

/파일명.asp, line 에러라인번호

에러소스내용


- 소스 중간에 한글, 한문,  특수문자 등이 들어갔을 경우

---------------------------------------------------------------------------------

Microsoft VBScript 런타임 오류 error '800a01b6'

개체가 이 속성 또는 메서드를 지원하지 않습니다.: 해당개채

/파일명.asp, line 에러라인번호


- 해당개체의 잘못된(없는) 메서드나 속성을 사용하려할때

Ex)
response.wtite "test"
response.write request.servervariable("REMOTE_ADDR")


- set 없이 변수에 리턴값이 오브젝트인 것을 넣으려할때
Ex) mail = Server.CreateObject("CDO.Message")      =>    set mail = Server.CreateObject("CDO.Message")

---------------------------------------------------------------------------------

서버 개체 error 'ASP 0177 : 800401f3'

Server.CreateObject 실패

/파일명.asp, line 에러라인번호

잘못된 프로그램 ID입니다. 이 메시지에 대한 추가 정보를 보려면 다음 Microsoft 온라인 지원 사이트를 방문하십시오: http://www.microsoft.com/contentredirect.asp.


- Server.CreateObject 로 알수없는 서버개체를 생성하려 할때
  (Ex. Windows 2000 Server 가 아닌 서버에서  Server.CreateObject("CDONT.Newmail") 등을 하려할때
- 서버컴포넌트를 서버에 등록하지 않고서 해당 서버개체를 생성하려할때

---------------------------------------------------------------------------------

Microsoft VBScript 런타임 오류 error '800a000b'

0으로 나누기

/파일명.asp, line 에러라인번호


- 어떤값을 0으로  나누려 할때(0을 다른값으로 나누기는 가능)

---------------------------------------------------------------------------------

ADODB.Connection error '800a0e7a'

공급자를 찾을 수 없습니다. 올바르게 설치되지 않았을 수 있습니다.

/파일명.asp, line 에러라인번호


- DB연결문자열에서 지정한 공급자(provider)가 없는 경우 or 오타 (--;)
Ex)  sConnectionString  = "provider=SQLOELDB;Data Source=localhost;Initial Catalog=Northwind;User ID=sa;Password=12345;"

---------------------------------------------------------------------------------

Microsoft OLE DB Provider for SQL Server error '80004005'

[DBNETLIB][ConnectionOpen (Connect()).]SQL Server가 없거나 액세스할 수 없습니다.

/파일명.asp, line 에러라인번호


- 지정한 DB서버 주소가 잘못되었거나 DB가 중지상태인 경우

---------------------------------------------------------------------------------

Microsoft OLE DB Provider for SQL Server error '80004005'

'DB명' 로그인에서 요청한 데이터베이스를 열 수 없습니다. 로그인이 실패했습니다.

/파일명.asp, line 에러라인번호


- DB연결문자열에서 지정한 Initial Catalog (시작DB)의 DB명이 잘못되거나 없는 경우.

---------------------------------------------------------------------------------

Microsoft OLE DB Provider for SQL Server error '80040e4d'

'DB계정명' 사용자가 로그인하지 못했습니다.

/파일명.asp, line 에러라인번호


- 해당 DB계정이 없는 경우
- 해당 계정의 패스워드가 잘못된 경우

---------------------------------------------------------------------------------

Microsoft OLE DB Provider for SQL Server error '80040e2f'

'테이블명' 테이블, '컬럼명' 열에 NULL 값을 삽입할 수 없습니다. 열에서 null을 사용할 수 없습니다. INSERT이(가) 실패했습니다.

/파일명.asp, line 에러라인번호


- NOT NULL 로 설정된 컬럼에 NULL 값을 넣으려고 할 경우( option explicit을 설정하지 않은 상태에서 해당 컬럼에 들어갈 변수명이 오타인 경우)

---------------------------------------------------------------------------------

ADODB.Parameters error '800a0e7c'

매개 변수 개체를 잘못 정의했습니다. 제공된 정보가 일치하지 않거나 완전하지 않습니다.

/파일명.asp, line 에러라인번호


- 파라메터 컬렉션의 매개변수의 형식을 잘못설정한 경우
 (Ex.   Cmd.Parameters.Append = Cmd.CreateParameter("MEM_ID",  adnvarchar, adParamInput, 20, sMemId)

- 타입 라이브러리를 지정하지 않고 타입변수(adChar, adVarchar, adInteger, adParamInput 등등.. )를 사용한 경우
 (페이지 상단에    <!-- METADATA type="typelib" file="c:\Program Files\Common Files\SYSTEM\ADO\msado15.dll" -->  이 지정되어 있어야 타입변수 사용가능)

---------------------------------------------------------------------------------

ADODB.Command error '800a0d5d'

응용 프로그램이 현재 작업에 대해 잘못된 형식을 가진 값을 사용하고 있습니다.

/파일명.asp, line 에러라인번호

 

- 입력된 값의 형식과 지정한 형식이 다른 경우

Ex)

sAge = "23세"
Cmd.Parameters.Append = Cmd.CreateParameter("MEM_AGE",  adInteger, adParamInput, 4, sAge)


- 입력될 값의 길이가 지정한 길이보다 클 경우

Ex)

sMemId = "Administrator"
Cmd.Parameters.Append = Cmd.CreateParameter("MEM_ID",  advarchar, adParamInput, 10, sMemId)

---------------------------------------------------------------------------------

Microsoft OLE DB Provider for SQL Server error '80040e57'

문자열이나 이진 데이터는 잘립니다.

/파일명.asp, line 에러라인번호


- 입력될 값의 길이와 지정한 값의 길이가 실제 컬럼의 길이보다 클 경우

Ex) 'MEM_ID    varchar(20)   일 경우

sMemId = "ThisIsSuperAdministrator"
Cmd.Parameters.Append = Cmd.CreateParameter("MEM_ID",  advarchar, adParamInput, 30, sMemId)


---------------------------------------------------------------------------------

Microsoft OLE DB Provider for SQL Server error '80040e0c'

명령 텍스트가 명령 개체에 대하여 설정되지 않았습니다.

/파일명.asp, line 에러라인번호


- Command 객체에 대해여  CommandText 속성이 지정되지 않은 경우

Ex)

sSql = ""        ' 쿼리가 비어있다
set Cmd = server.createobject("adodb.command")
Cmd.activeconnection = sConnectionString
Cmd.CommandText = sSql     '변수명이 맞는지 확인 


---------------------------------------------------------------------------------

Posted by 탁이98
,


SERVER_NAME 
    서버의 호스트 명칭 또는 DNS명칭
URL                       현재URL
PATH_INFO            현재URL
QUERY_STRING     GET방식으로 넘어온 값
REMOTE_ADDR     클라이언트 IP
HTTP_REFERER     이전에 본 페이지 주소

Posted by 탁이98
,

스트림을 이용한 파일 다운로드



Response.ContentType = "application/unknown"
Response.AddHeader "Content-Disposition","attachment; filename=저장할파일명"


Set oStream = Server.CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.LoadFromFile Server.MapPath("다운받을파일경로")
download = oStream.Read
Response.BinaryWrite download
Set oStream = nothing 

Posted by 탁이98
,

ASP페이지 상단에 다음과같이 컨텐츠타입과 파일명을 설정해줍니다.

<%

 

Response.ContentType = "application/vnd.ms-excel"

Response.AddHeader "Content-Disposition" , "attachment; filename=파일명.xls"

...

 

%>

Posted by 탁이98
,

ASP에서 정규식 사용

ASP 2009. 6. 18. 15:54

- 정규식 사용법

 Dim objRegExp, strOutput
 Set objRegExp = New Regexp
 
 objRegExp.IgnoreCase = True                               '// 대소문자 구분 여부
 objRegExp.Global = True                                      '// 전체 검색여부
 objRegExp.Pattern = 정규식패턴  

 strOutput = objRegExp.Replace(검색문자열, 바꿀문자열) 
   
 Set objRegExp = Nothing

 

- 자주 사용하는 정규식

^가-힣                               '// 한글
[^-0-9 ]                             '// 숫자
[^-a-zA-Z]                         // 영문
<[^>]*>                             '// 태그이외

[^-가-힣a-zA-Z0-9/ ]          '// 한글+영문+숫자
[^-a-zA-Z0-9/ ]                  '// 영문+숫자

\<(\/?)(script)([^<>]*)>    '// 스크립트

Posted by 탁이98
,

ASP에서 Parameters 콜렉션을 사용하는 경우

 DB(MSSQL)저장시 Decimal 타입의 데이터 사이즈 설정하는 방법입니다.

 

 

Ex)

 

컬럼중에 'HEIGHT' 라는 컬럼의 데이터타입이 Decimal(4,1) 라고 하자.


 

 

... 생략 ...


.Parameters.Append = Cmd.Createparameter("HEIGHT", adDecimal , adParamInput, , 입력값)
.Parameters("HEIGHT").Precision = 4           ' 소수점포함 총자릿수
.Parameters("HEIGHT").NumericScale = 1     ' 소수점이하 자리수

 

... 생략 ...

 


위와 같이 Precision 과 NumericScale 속성을 설정해야한다.

PS : 입력값이 공백일경우 0 으로 바꾸어서 넣어준다.

Posted by 탁이98
,

<%
Set objFs = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = objFs.OpenTextFile(Server.MapPath(sUrl), 1)   '//sUrl은 텍스트파일이 있는 URL
  
Do While Not objFile.AtEndOfStream
     txtLine = objFile.ReadLine
     response.write txtLine & vbCrLf
Loop
  
objFile.Close
Set objFile = Nothing
%>

Posted by 탁이98
,

Function cutStr(str, cutLen)                                '// cutStr(문자열, 자를길이)

   Dim strLen, strByte, strCut, strRes, char, i
   strLen = 0
   strByte = 0
   strLen = Len(str)

   for i = 1 to strLen
      char = ""
      strCut = Mid(str, i, 1)
      char = Asc(strCut)
      char = Left(char, 1)

      if char = "-" then  '2Bye
          strByte = strByte + 2
      else
          strByte = strByte + 1
      end if

      if cutLen < strByte then
          strRes = strRes & ".."
          exit for
      else
          strRes = strRes & strCut
      end if
   next

   cutStr = strRes
End

Posted by 탁이98
,

[로컬서버 이용시]

 Dim MailBody, myMail

 Set myMail = CreateObject("CDO.Message")
 set iConf = CreateObject("CDO.Configuration")
 Set Flds = iConf.Fields
  Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 1
  Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "C:\Inetpub\mailroot\Pickup"
  Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
  Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
  Flds.Update
 Set myMail.Configuration = iConf

 myMail.From = 보내는주소

 myMail.To = 받는주소

 myMail.Subject = 제목
 myMail.Htmlbody = 본문
 myMail.fields.update
 myMail.Send

 Set myMail = Nothing
 Set iConf = Nothing
 Set Flds  = Nothing

 

 


  [원격서버이용시]

  Dim MailBody, myMail

  Set myMail = CreateObject("CDO.Message")
  set iConf = CreateObject("CDO.Configuration")
  Set Flds = iConf.Fields

  Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "메일서버주소"
  Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
  Flds.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
  Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverpickupdirectory") = "C:\Inetpub\mailroot\Pickup"
  Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "localhost"
  Flds.Item("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 10
  Flds.Update
 Set myMail.Configuration = iConf

 myMail.From = 보내는주소

 myMail.To = 받는주소

 myMail.Subject = 제목
 myMail.Htmlbody = 본문
 myMail.fields.update
 myMail.Send

 Set myMail = Nothing
 Set iConf = Nothing
 Set Flds  = Nothing

Posted by 탁이98
,