up.htm
<!--#include 파일="inc/domin.asp"-->
<!--#include 파일="conn.asp"-->
<html>
<머리>
<title><% =웹 이름 %></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="main.css" type="text/css">
<스타일 유형="텍스트/css">
<!--
.tx1 { 높이: 20px; 너비: 30px; 글꼴 크기: 9pt; 테두리: 1px 솔리드; 테두리 색상: 검정색 검정색
#000000; 색상: #0000FF}
-->
</style>
<스크립트 언어="자바스크립트">
<!--
var bgc_on=new 배열("#74D738","#FF9C17","#3278AB","#486177","#078C00","#007ECA")
var bgc_off=new Array("#4CAD12","FFB859","5F9FD0","577590","08A700","009FFF")
함수 Turnon(obj1,id){
obj1.style.Background=bgc_on[id];
}
함수 끄기(obj1,id){
obj1.style.Background=bgc_off[id];
}
//-->
</script>
<SCRIPT 언어=자바스크립트>
함수 check_input()
{
if (Frm.pic.value=="")
{ Alert("현재의 사진을 확인하세요");
거짓을 반환;
}
if (Frm.type.value=="")
{ 경고("请选择图文类型");
거짓을 반환;
}
if (Frm.thetext.value=="")
{ 경고("请输入 사진 설명");
거짓을 반환;
}
사실을 반환;
}
</SCRIPT>
</head>
<body bgcolor="#555555" text="#000000" leftmargin="0" topmargin="0">
<테이블 너비=755 cellpadding=0 셀 간격=0 테두리=0 bgcolor=#ffffff 정렬="중앙">
<tr>
<td height=100><img src="img/top.gif" align="top">
</table>
<!--#include file="inc/mulu.asp"-->
<테이블 너비=755 cellpadding=0 셀 간격=0 테두리=0 bgcolor=#ffffff align="center" bordercolor=#000000>
<tr>
<td height=400 width=180 bgcolor=#D1E9D5 style="border-right: 1px #0E801E solid">
<테이블 너비=100% 높이=100% cellpadding=0 셀 간격=0 테두리=0 align="center" bordercolor=#000000>
<tr><td height=30 align="center" class=L15><font color=#E96D08>欢迎你:<% =username %> 管理中心</font>
<tr><td height=23 align="center" class=L15 bgcolor=#4CAD12 style="border-top:0px #0E801E solid; border-bottom:1px #0E801E solid;"><font color=#C2F009 클래스 =yinying>管 理 中 心</font>
<tr><td 높이=20 클래스=L13>
<!--#include 파일="inc/centermulu.asp"-->
<tr><td 높이=5>
<tr><td>
</table>
<TD>
<%
rs=server.createobject("adodb.recordset")를 설정합니다.
sql="작성자='"&사용자 이름&"'"인 사진에서 *를 선택하세요.
rs.open SQL,콘,1,1
%>
<테이블 셀패딩=0 셀 간격=0 테두리=0 너비=100% 높이=100%>
<tr><td 높이=3>
<tr><td 높이=3 bgcolor=#ffffff 배경=img/bj3.gif>
<tr><td height=20 valign="bottom" bgcolor=#eeeeee> 现在位置: 98243班 - 管理中心 - 添加新闻
<tr><td 높이=3 bgcolor=#eeeeee style="border-bottom: 1px #cccccc solid"><p style="font-size:1pt">
<tr><td height=20 valign="bottom"> <font color=green><% =username %>:你一共上传了 <font color=red><% =rs.recordcount %></font> 张사진</font> <a href="adminphoto.asp"><font color=red><u>管理以前上传 사진</u></font></a>
<tr><td bgcolor=#ffffff valign=상단>
<테이블 셀 패딩=0 셀 간격=0 테두리=0 너비=95% 높이=100% 정렬="중앙">
<form action=addphoto.asp method=post name=Frm onSubmit="return check_input()" enctype="multipart/form-data">
<tr><td 높이=20 colspan=2>
<tr><td height=25 width=15% align="right" class=L13>选择 사진: <td> <input NAME="pic" TYPE="FILE" class="tx1" style="width:300 "> <font color=red>拒绝color情、写真图等</font>
<tr><td height=25 width=20% align="right" class=L13>photo分类: <td> <select name=" 유형">
<옵션 선택 값="">选择类型</option>
<option value="班级합影">班级합影</option>
<option value="인형 사진">인형 사진</option>
<option value="恩师 사진">恩师 사진</option>
<option value="감정 사진">감정 사진</option>
<option value="남자 사진">남자 사진</option>
<option value="其他 사진">其他 사진</option>
</select>
<tr><td height=25 width=20% align="right" class=L13>사진 설명: <td> <textarea name="thetext" cols="46"rows="7" style= "테두리:1px 더블 rgb(88,88,88); 글꼴:9pt">
</textarea> <font color=red>더 많은 20자본</font>
<tr><td 높이=5 colspan=2>
<tr><td 높이=25 colspan=2 align="center">
<input type="submit" name="제출" value=" 提 交 " style="border:1px double rgb(88,88,88);font:9pt">
<input type="reset" name="Reset" value=" 중 写 " style="border:1px double rgb(88,88,88);font:9pt">
<tr><td colspan=2>
</tr></form>
</table>
</테이블>
</테이블>
<!--#include 파일="inc/footer.asp"-->
</body>
</html>
fupload.inc
<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>
'제조상제품대소
Dim UploadSizeLimit
'********************************** 得到上传数据 ********** ************************
함수 GetUpload()
희미한 결과
결과 설정 = 없음
If Request.ServerVariables("REQUEST_METHOD") = "POST" Then '요청 메서드는 "POST"여야 합니다.
희미한 CT, PosB, 경계, 길이, PosE
CT = Request.ServerVariables("HTTP_Content_Type") 'Content-Type 헤더를 읽습니다.
LCase(Left(CT, 19)) = "multipart/form-data"이면 'Content-Type 헤더는 "multipart/form-data"여야 합니다.
'업로드 요청입니다.
'Content-Type 헤더에서 경계와 길이를 가져옵니다.
PosB = InStr(LCase(CT), "boundary=") '경계 찾기
If PosB > 0 Then Boundary = Mid(CT, PosB + 9) '경계를 분리합니다.
Length = CLng(Request.ServerVariables("HTTP_Content_Length")) 'Content-Length 헤더 가져오기
"" & UploadSizeLimit<>""인 경우
UploadSizeLimit = clng(UploadSizeLimit)
길이 > UploadSizeLimit인 경우
' 오류 발생 시 다음 재개 '입력 버퍼를 지웁니다.
' response.AddHeader "연결", "닫기"
' 오류 발생 시 0으로 이동
Request.BinaryRead(길이)
Err.Raise 2, "GetUpload", "업로드 크기" & FormatNumber(Length,0) & "B가 " & FormatNumber(UploadSizeLimit,0) & "B" 제한을 초과합니다.
종료 기능
종료하면
end if
If Length > 0 And Boundary <> "" Then '업로드에 필요한 정보가 있습니까?
경계 = "--" 및 경계
희미한 머리, 바이너리
Binary = Request.BinaryRead(Length) '클라이언트에서 바이너리 데이터를 읽습니다.
'바이너리 데이터에서 업로드 필드를 검색합니다.
결과 설정 = SeparateFields(이진, 경계)
Binary = 비어 있음 '변수 지우기
또 다른
Err.Raise 10, "GetUpload", "0 길이 요청."
종료 조건
또 다른
Err.Raise 11, "GetUpload", "파일이 전송되지 않았습니다."
종료 조건
또 다른
Err.Raise 1, "GetUpload", "잘못된 요청 방법."
종료 조건
GetUpload = 결과 설정
기능 종료
기능 분리 필드(바이너리, 경계)
희미한 PosOpenBoundary, PosCloseBoundary, PosEndOfHeader, isLastBoundary
희미한 필드
Boundary = StringToBinary(Boundary)
PosOpenBoundary = InstrB(바이너리, 경계)
PosCloseBoundary = InstrB(PosOpenBoundary + LenB(Boundary), Binary, Boundary, 0)
필드 설정 = CreateObject("Scripting.Dictionary")
동안 수행(PosOpenBoundary > 0 및 PosCloseBoundary > 0 및 isLastBoundary 아님)
'헤더 및 파일/소스 필드 데이터
희미한 HeaderContent, FieldContent
'헤더 필드
희미한 Content_Disposition, FormFieldName, SourceFileName, Content_Type
'도움변수
희미한 필드, TwoCharsAfterEndBoundary
'헤더 끝을 가져옵니다.
PosEndOfHeader = InstrB(PosOpenBoundary + Len(Boundary), Binary, StringToBinary(vbCrLf + vbCrLf))
'필드 헤더를 분리합니다
HeaderContent = MidB(Binary, PosOpenBoundary + LenB(Boundary) + 2, PosEndOfHeader - PosOpenBoundary - LenB(Boundary) - 2)
'필드 내용을 구분합니다.
FieldContent = MidB(Binary, (PosEndOfHeader + 4), PosCloseBoundary - (PosEndOfHeader + 4) - 2)
'헤더에서 헤더 필드를 분리합니다.
GetHeadFields BinaryToString(HeaderContent), Content_Disposition, FormFieldName, SourceFileName, Content_Type
'필드 하나를 생성하고 매개변수 할당
필드 설정 = CreateUploadField()
필드.이름 = FormFieldName
Field.ContentDisposition = Content_Disposition
Field.FilePath = 소스파일이름
Field.FileName = GetFileName(소스파일 이름)
Field.ContentType = Content_Type
Field.Value = FieldContent
Field.Length = LenB(FieldContent)
Fields.Add FormFieldName, Field
'이 끝 경계입니까?
TwoCharsAfterEndBoundary = BinaryToString(MidB(Binary, PosCloseBoundary + LenB(Boundary), 2))
'Binary.Mid(PosCloseBoundary + Len(경계), 2).String
isLastBoundary = TwoCharsAfterEndBoundary = "--"
If Not isLastBoundary Then '이것은 끝 경계가 아닙니다. 다음 양식 필드로 이동합니다.
PosOpenBoundary = PosCloseBoundary
PosCloseBoundary = InStrB(PosOpenBoundary + LenB(경계), 바이너리, 경계 )
종료 조건
고리
SeparateFields = 필드 설정
종료 기능
'************************************ 유틸리티 ************ **********************
함수 BinaryToString(str)
strto = ""
i=1에서 lenb(str)까지
AscB(MidB(str, i, 1)) > 127이면
strto = strto & chr(Ascb(MidB(str, i, 1))*256+Ascb(MidB(str, i+1, 1)))
나는 = 나는 + 1
또 다른
strto = strto & Chr(AscB(MidB(str, i, 1)))
종료하면
다음
BinaryToString=strto
종료 함수
함수 StringToBinary(String)
딤 아이, B
I=1에서 len(String)까지
B = B & ChrB(Asc(Mid(문자열,I,1)))
다음
StringToBinary = B
End Function
'업로드 헤더에서 헤더 필드를 분리합니다.
함수 GetHeadFields(ByVal Head, Content_Disposition, Name, FileName, Content_Type)
Content_Disposition = LTrim(SeparateField(Head, "content-disposition:", ";"))
이름 = (SeparateField(Head, "name=", ";")) 'ltrim
If Left(이름, 1) = """" 그러면 Name = Mid(이름, 2, Len(이름) - 2)
FileName = (SeparateField(Head, "filename=", ";")) 'ltrim
If Left(FileName, 1) = """" 그러면 FileName = Mid(FileName, 2, Len(FileName) - 2)
Content_Type = LTrim(SeparateField(Head, "콘텐츠 유형:", ";"))
End 함수
'sStart와 sEnd 사이에 하나의 필드를 구분합니다.
기능 SeparateField(From, ByVal sStart, ByVal sEnd)
희미한 PosB, PosE, sFrom
sFrom = L케이스(From)
PosB = InStr(sFrom, sStart)
PosB > 0이면
PosB = PosB + Len(sStart)
PosE = InStr(PosB, sFrom, sEnd)
PosE = 0이면 PosE = InStr(PosB, sFrom, vbCrLf)
PosE = 0이면 PosE = Len(sFrom) + 1
SeparateField = Mid(시작, PosB, PosE - PosB)
또 다른
SeparateField = 비어 있음
종료 조건
End Function
'파일의 전체 경로에서 파일 이름을 구분합니다.
함수 GetFileName(전체 경로)
딤포스, PosF
PosF = 0
Pos = Len(FullPath)의 경우 1단계 -1
Case Mid 선택(FullPath, Pos, 1)
Case "/", "": PosF = Pos + 1: Pos = 0
선택 종료
다음
PosF = 0이면 PosF = 1
GetFileName = Mid(전체 경로, PosF)
기능 종료
</SCRIPT>
<스크립트 RUNAT=서버 언어=JSCRIPT>
//함수는 Field 객체를 생성합니다.
함수 CreateUploadField(){ 새로운 uf_Init() 반환 }
함수 uf_Init(){
this.이름 = null
this.ContentDisposition = null
this.파일 이름 = null
this.FilePath = null
this.ContentType = null
this.값 = null
this.길이 = null
}
</SCRIPT>
addphoto.asp
<!--#include 파일="conn.asp"-->
<!--#include 파일="inc/domin.asp"-->
<!--#include 파일="fupload.inc"-->
<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" 그러면
희미한 필드
UploadSizeLimit=100000
필드 설정 = GetUpload()
희미한 필드
Fields.Items의 각 필드에 대해
사례 Field.name 선택
케이스 "thetext" sss=BinaryToString(Field.value)
케이스 "유형" fff=BinaryToString(Field.value)
케이스 "제출" submit=BinaryToString(Field.value)
케이스 "사진"
파일 이름=필드.파일 이름
fileContentType=field.ContentType
파일값=필드.값
선택 종료
다음
'---------------
filename<>"" 및 fileContentType<>"image/gif" 및
fileContentType<>"image/pjpeg"
인 경우
%>
<중앙>
<br><br>
<font color=red size=3>상위 사진 应该为GIF或JPG文件!</font><br><br>
<input type="button" value="중복" onclick="history.go( -1 );return
true;">
</center>
<%
또 다른
'------------
'开始输入'
'------------
응답.sss 쓰기
응답.쓰기"<br>"
응답.fff 쓰기
rs=server.createobject("ADODB.recordset")를 설정합니다.
sql = "id가 null인 tb에서 *를 선택합니다."
rs.SQL,conn,3,3 열기
rs.addnew
rs("작성자")=사용자 이름
rs("thetext")=sss
rs("유형")=fff
rs("조회수")=1
rs("이후 시간")=지금()
rs("사진").appendchunk 파일값
rs.update
RS.닫기
%>
<br><br>
<center><font color=red
size=3>成功输入个人基本档案!</font><br><br><form method="post"
action="personinf.asp"><input type="submit" value="返回"></form>
</center>
<%
종료하면
종료하면
%>
showpic.asp
<!--#include 파일="conn.asp"-->
<%
id=요청("ID")
rs=server.CreateObject("adodb.recordset")를 설정합니다.
sql="SELECT * FROM tb 여기서 ID="&id
rs.SQL,conn,1,3 열기
response.contenttype="이미지/gif"
Response.BinaryWrite rs("사진")
%>