'================================================ = ==================
'
' ASP를 사용하여 구성 요소 없는 파일 업로드/다운로드 구현
'
'기능 소개
'업로드된 파일 데이터를 데이터베이스에 저장하면 업로드된 여러 파일을 형식으로 처리할 수 있습니다.
' 다양한 데이터베이스에 적용 가능하며, ADO 방식을 사용하여 데이터베이스에 연결
' 이 예에서는 ACCESS 데이터베이스 zj.mdb를 사용합니다.
'Table:tb_img(id int(auto-increment column),path text(255) 업로드된 파일을 저장할 디렉터리
',fname text(250)는 업로드된 파일의 이름을 저장하고, test(250)는 업로드된 파일의 유형을 저장합니다.
', img ole 객체는 업로드된 파일 내용을 저장합니다.
'
'
'================================================ = ==================
'================================================ = ==================
'
'파일 업로드를 위한 HTML 페이지: zj_up.htm
'
'================================================ = ==================
<html>
<머리>
<title>파일을 업로드하고 데이터베이스에 저장</title>
</head>
<본문>
<form name="form1" enctype="multipart/form-data" method="post" action="zj_up.asp">
<p>
<입력 유형="파일" 이름="파일">
<input type="submit" name="제출" value="업로드">
</p>
</form>
</body>
</html>
'================================================ = ==================
'
'파일을 업로드하고 데이터베이스의 ASP 페이지: zj_up.asp에 저장합니다.
'
'================================================ = ==================
<%
응답.만료=0
기능 f_Bin2Str(ByVal sBin)
희미한 iI, iLen, iChr, iRe
아이레 = ""
IsNull(sBin)이 아니면
iLen = LenB(sBin)
iI = 1의 경우 iLen으로
iChr = MidB(sBin, iI, 1)
AscB(iChr) > 127인 경우
iRe = iRe & Chr(AscW(MidB(sBin, iI + 1, 1) & iChr))
나 = 나 + 1
또 다른
iRe = iRe & Chr(AscB(iChr))
종료 조건
다음
종료 조건
f_Bin2Str = iRe
기능 종료
iConcStr = "공급자=Microsoft.Jet.OLEDB.4.0;보안 정보 유지=False" & _
";데이터 소스=" & server.mappath("zj.mdb")
iSql="tb_img"
iRe=Server.CreateObject("ADODB.Recordset")를 설정합니다.
iRe.Open iSql,iConcStr,1,3
iLen=Request.TotalBytes
sBin=Request.BinaryRead(iLen)
iCrlf1 = ChrB(13) & ChrB(10)
iCrlf2 = iCrlf1 & iCrlf1
iLen = InStrB(1, sBin, iCrlf1) - 1
iSpc = 왼쪽B(sBin, iLen)
sBin = MidB(sBin, iLen + 34)
iPos1 = InStrB(sBin, iCrlf2) - 1
iPos1 > 0인 동안
iStr = f_Bin2Str(LeftB(sBin, iPos1))
iPos1 = iPos1 + 5
iPos2 = InStrB(iPos1, sBin, iSpc)
iPos3 = InStr(iStr, "; filename=""") + 12
iPos3 > 12인 경우
iStr = 중간(iStr, iPos3)
iPos3 = InStr(iStr, Chr(13) & Chr(10) & "콘텐츠 유형: ") - 2
iFn = 왼쪽(iStr, iPos3)
iFn <> ""이면
iRe.AddNew
ire("경로")=왼쪽(iFn,instrrev(iFn,""))
iRe("fname") = mid(iFn,instrrev(iFn,"")+1)
iRe("유형") = Mid(iStr, iPos3 + 18)
iRe("img").AppendChunk MidB(sBin, iPos1, iPos2 - iPos1)
iRe.업데이트
종료 조건
종료 조건
sBin = MidB(sBin, iPos2 + iLen + 34)
iPos1 = InStrB(sBin, iCrlf2) - 1
향하게 하다
iRe.close
iRe=아무것도 설정하지 않음
%>
'============================================== = ====================
'
' 데이터 다운로드를 위한 ASP 페이지: zj_down.asp
'
'================================================ = ==================
<%
응답.버퍼=true
Response.Clear
iConcStr = "공급자=Microsoft.Jet.OLEDB.4.0;보안 정보 유지=False" & _
";데이터 소스=" & server.mappath("zj.mdb")
iRe=server.createobject("adodb.recordset")를 설정합니다.
iSql="tb_img"
iRe.open iSql,iconcstr,1,1
Response.ContentType=ire("유형")
Response.BinaryWrite iRe("img")
iRe.close
iRe=아무것도 설정하지 않음
%>