up.htm
<!--#include file="inc/domin.asp"-->
<!--#include file="conn.asp"-->
<html>
<頭>
<title><% =ウェブ名 %></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="main.css" type="text/css">
<style type="text/css">
<!--
.tx1 { 高さ: 20px;幅: 30ピクセル;フォントサイズ: 9pt;境界線: 1 ピクセルの実線。境界線の色: 黒黒
#000000;色: #0000FF}
-->
</style>
<script language="JavaScript">
<!--
var bgc_on=新しい配列("#74D738","#FF9C17","#3278AB","#486177","#078C00","#007ECA")
var bgc_off=new Array("#4CAD12","FFB859","5F9FD0","577590","08A700","009FFF")
functionturnon(obj1,id){
obj1.style.background=bgc_on[id];
}
関数をオフにする(obj1,id){
obj1.style.background=bgc_off[id];
}
//-->
</script>
<SCRIPT言語=javascript>
関数 check_input()
{
if (Frm.pic.value=="")
{alert("请选择要上传的画像");
false を返します。
}
if (Frm.type.value=="")
{alert("请选择图片类型");
false を返します。
}
if (Frm.thetext.value=="")
{alert("入力写真写真説明");
false を返します。
}
true を返します。
}
</スクリプト>
</head>
<body bgcolor="#555555" text="#000000" leftmargin="0" topmargin="0">
<table width=755 cellpadding=0 cellpacing=0 border=0 bgcolor=#ffffff align="center">
<tr>
<td height=100><img src="img/top.gif" align="top">
</table>
<!--#include file="inc/mulu.asp"-->
<table width=755 cellpadding=0 cellpacing=0 border=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 cellpacing=0 border=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 height=20 class=L13>
<!--#include file="inc/centermulu.asp"-->
<tr><td height=5>
<tr><td>
</テーブル>
<td>
<%
set rs=server.createobject("adodb.recordset")
sql="著者='"&ユーザー名&"'"の写真から * を選択
rs.open SQL,conn,1,1
%>
<テーブル cellpadding=0 cellpacing=0 border=0 width=100% height=100%>
<tr><td height=3>
<tr><td height=3 bgcolor=#ffffff background=img/bj3.gif>
<tr><td height=20 valign="bottom" bgcolor=#eeeeee> 现在位置: 98243班 - 管理中心 - 追加新闻
<tr><td height=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=top>
<table cellpadding=0 cellpacing=0 border=0 width=95% height=100% align="center">
<form action=addphoto.asp method=post name=Frm onSubmit="return check_input()" enctype="multipart/form-data">
<tr><td height=20colspan=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>拒否绝色情、写真图等</font>
<tr><td height=25 width=20% align="right" class=L13>写真分类: <td> <select name="タイプ">
<option selected value="">選択タイプ</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= "border:1px double rgb(88,88,88);font:9pt">
</textarea> <font color=red>最大 20 文字</font>
<tr><td height=5colspan=2>
<tr><td height=25colspan=2 align="center">
<input type="submit" name="Submit" value="提交 " style="border:1px double rgb(88,88,88);font:9pt">
<input type="reset" name="リセット" value=" 重写 " style="border:1px double rgb(88,88,88);font:9pt">
<tr><tdcolspan=2>
</tr></form>
</テーブル>
</テーブル
> </テーブル>
<!--#include file="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 ヘッダーを読み取ります
If LCase(Left(CT, 19)) = "multipart/form-data" then '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 ヘッダーを取得
if "" & UploadSizeLimit<>"" then
アップロードサイズ制限 = clng(アップロードサイズ制限)
長さ > アップロードサイズ制限の場合
' エラー発生時は次を再開 ' 入力バッファをクリアします
'response.AddHeader "接続"、"閉じる"
' エラーで goto 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 = Empty '変数をクリア
それ以外
Err.Raise 10、「GetUpload」、「長さゼロのリクエスト」。
終了の場合
それ以外
Err.Raise 11、「GetUpload」、「ファイルは送信されませんでした。」
終了の場合
それ以外
Err.Raise 1、「GetUpload」、「不正なリクエスト メソッドです。」
終了の場合
GetUpload = 結果を設定します
終了機能
関数 SeparateFields(バイナリ、境界)
Dim PosOpenBoundary、PosCloseBoundary、PosEndOfHeader、isLastBoundary
薄暗いフィールド
Boundary = StringToBinary(境界)
PosOpenBoundary = InstrB(バイナリ, 境界)
PosCloseBoundary = InstrB(PosOpenBoundary + LenB(Boundary), Binary, Boundary, 0)
Set Fields = CreateObject("Scripting.Dictionary")
Do While (PosOpenBoundary > 0 かつ PosCloseBoundary > 0 And Not isLastBoundary)
'ヘッダーとファイル/ソースフィールドのデータ
Dim HeaderContent、FieldContent
'ヘッダーフィールド
Dim Content_Disposition、FormFieldName、SourceFileName、Content_Type
'補助変数
Dim フィールド、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
' フィールドを 1 つ作成し、パラメーターを割り当てます
フィールドを設定 = CreateUploadField()
フィールド名 = フォームフィールド名
Field.ContentDisposition = Content_Disposition
フィールド.ファイルパス = ソースファイル名
フィールド.ファイル名 = Getファイル名(ソースファイル名)
Field.ContentType = Content_Type
フィールド.値 = フィールドコンテンツ
フィールド.長さ = LenB(フィールドコンテンツ)
Fields.Add FormFieldName, Field
'これは終了境界ですか?
TwoCharsAfterEndBoundary = BinaryToString(MidB(Binary, PosCloseBoundary + LenB(境界), 2))
'Binary.Mid(PosCloseBoundary + Len(境界), 2).String
isLastBoundary = TwoCharsAfterEndBoundary = "--"
If Not isLastBoundary then 'これは終了境界ではありません - 次のフォーム フィールドに進みます。
PosOpenBoundary = PosCloseBoundary
PosCloseBoundary = InStrB(PosOpenBoundary + LenB(境界), バイナリ, 境界 )
終了の場合
ループ
SeparateFields = フィールドを設定します
終了関数
'********************************** ユーティリティ ************ **********************
関数 BinaryToString(str)
ストラト = ""
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)))
i = i + 1
それ以外
strto = strto & Chr(AscB(MidB(str, i, 1)))
終了する場合
次
BinaryToString=strto
終了関数
Function StringToBinary(String)
ディムI、B
I=1 から len(String) の場合
B = B & ChrB(Asc(Mid(String,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
Left(名前, 1) = """" の場合、名前 = Mid(名前, 2, Len(名前) - 2)
ファイル名 = (SeparateField(Head, "ファイル名=", ";")) 'ltrim
Left(FileName, 1) = """" の場合、FileName = Mid(FileName, 2, Len(FileName) - 2)
Content_Type = LTrim(SeparateField(Head, "コンテンツ タイプ:", ";"))
End 関数
'sStart と sEnd の間の 1 つのフィールドを区切ります
関数 SeparateField(From、ByVal sStart、ByVal sEnd)
薄暗い PosB、PosE、sFrom
sFrom = LCase(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(From、PosB、PosE - PosB)
それ以外
個別フィールド = 空
終了の場合
End Function
'ファイル名とファイルのフルパスを分離します
関数 GetFileName(フルパス)
ディムポジション、PosF
位置F = 0
Pos = Len(FullPath) の場合 1 ステップ -1
Case Mid(フルパス、位置、1) を選択
「/」、「」の場合:PosF = Pos + 1:Pos = 0
エンドセレクト
次
PosF = 0 の場合、PosF = 1
GetFileName = Mid(フルパス, PosF)
終了機能
</スクリプト>
<SCRIPT RUNAT=サーバー言語=JSCRIPT>
//関数は Field オブジェクトを作成します。
function CreateUploadField(){ return new uf_Init() }
関数 uf_Init(){
this.Name = null
this.ContentDisposition = null
this.FileName = null
this.FilePath = null
this.ContentType = null
this.Value = null
this.Length = null
}
</SCRIPT>
addphoto.asp
<!--#include file="conn.asp"-->
<!--#include file="inc/domin.asp"-->
<!--#include file="fupload.inc"-->
<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then
薄暗いフィールド
アップロードサイズ制限=100000
フィールドを設定 = GetUpload()
ディムフィールド
Fields.Items の各フィールドについて
ケースを選択 フィールド名
case "thetext" sss=BinaryToString(Field.value)
case "タイプ" fff=BinaryToString(Field.value)
case "submit" submit=BinaryToString(Field.value)
ケース「写真」
ファイル名=フィールド.ファイル名
fileContentType=フィールド.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 を書き込む
応答.write"<br>"
応答.fff を書き込みます
set rs=server.createobject("ADODB.recordset")
sql = "select * from tb where theid is null"
rs.SQL、conn、3、3を開く
rs.addnew
rs("作成者")=ユーザー名
rs("テキスト")=sss
rs("タイプ")=fff
rs(「ヒット数」)=1
rs("ポストタイム")=now()
rs("写真").appendchunk ファイル値
rs.update
rs.close
%>
<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 file="conn.asp"-->
<%
id=リクエスト("id")
set rs=server.CreateObject("adodb.recordset")
sql="SELECT * FROM tb where theid="&id"
rs.SQL、conn、1、3を開く
response.contenttype="画像/gif"
Response.BinaryWrite rs("写真")
%>