لقد حاولت للتو تحميل المكونات بدون مكونات بنجاح، لذلك أقدم الكود لمشاركته مع الجميع.
/* addemployee.asp */
<أتش تي أم أل>
<الرأس>
<title>صفحة الموظفين الرئيسية</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="../css/site_css.css" type="text/css">
</head>
<script language="javascript">
<!--
//اختر فئة
////////////////////////////////////////////////////////////////// /// ///////////////////////
وظيفة تحديد الفرز (txtSubject) {
فار returnValue
returnValue=window.showModalDialog("selMode.htm",null,"center:1;status:0;help:0;resize:0;dialogheight:300px;dialogwidth:206px");
إذا (returnValue!="" && returnValue!=null){
txtSubject.value=returnValue
}
}
////////////////////////////////////////////////////////////////// /// ///////////////////////
// التحقق من الشرعية
الدالة على ما يرام (هذا النموذج) {
فار strTemp,strValue,strLen,strExName
إذا (thisForm.txtTitle.value==""){
تنبيه ("نصيحة: لا يمكن أن يكون العنوان فارغًا، يرجى إدخاله بشكل صحيح")
thisForm.txtTitle.focus()
العودة كاذبة
}
إذا (thisForm.txtSort.value==""){
تنبيه("نصيحة: الرجاء تحديد الفئة الصحيحة")
thisForm.txtSort.focus()
العودة كاذبة
}
/*التحقق من نوع الصورة*/
إذا(thisForm.file.value!=""){
strTemp=thisForm.file.value
strValue=strTemp.toLowerCase()
strLen=strTemp.length
strExName=strValue.substring(strLen-4,strLen)
إذا (strExName!=".jpg" && strExName!=".gif"){
تنبيه ("الرجاء تحديد ملف jpg أو gif!")
العودة كاذبة
}
العودة صحيحا
}
}
//-->
</script>
<body bgcolor = "#FFFFFF" text = "#000000" leftmargin = "1" topmargin = "1">
<اسم النموذج = "form1" طريقة = "post" action = "transact1.asp" enctype = "multipart/form-data">
<حدود الجدول = "0" تباعد الخلايا = "0" خلية الحشو = "0">
<تر>
<td colspan="2" bgcolor="#006699" height="15"> </td>
</tr>
<تر>
<td class="textBlack">
<div align="right">العنوان:</div>
</TD>
<TD>
<نوع الإدخال = "نص" اسم = "txtTitle" حجم = "52" فئة = "textarea">
</TD>
</tr>
<تر>
<td class="textBlack">
<div align="right">الفئة:</div>
</TD>
<TD>
<نوع الإدخال = "نص" اسم = "txtSort" حجم = "35" فئة = "منطقة النص">
<input type = "button" name = "Submit2" class = "buttonSkid" onclick = "selectsort (txtSort)؛">
</TD>
</tr>
<تر>
<td class="textBlack" valign="top">
<div align="right">النص:</div>
</TD>
<TD>
<textarea name="txtContent"rows="15" cols="50" class="textarea"></textarea>
</TD>
</tr>
<تر>
<td height = "14" class = "textBlack" valign = "top">
<div align="right">الصورة:</div>
</TD>
<td height = "14" class = "textBlack">
<div محاذاة = "يسار">
<نوع الإدخال = "ملف" اسم = "ملف" حجم = "35" فئة = "منطقة النص">
</div>
</TD>
</tr>
<تر>
<td height="42" class="textBlack" valign="top"> </td>
<td height = "42" class = "textBlack" valign = "middle">
<p>1. يرجى التحكم في حجم الصور التي تقوم بتحميلها في حدود <font color="#FF0000"><b>500K</b></font>، وإلا فلن يُسمح بالتحميل<br>
2. يجب أن تكون الصورة التي تقوم بتحميلها <font color="#FF0000"><b>150*130 بكسل</b></font><br>
3. قم بتحميل الصورة التي تم تحميلها بتنسيق JPG أو GIF</p>
</TD>
</tr>
<تر>
<td height="39" class="textBlack"> </td>
<td height="39" valign="middle">
<div align="center"><img src="../images/save.gif" width="85" height="19" onClick="if(isOK(form1)){form1.submit()}" >
<img src="../images/ Close.gif" width="85" height="19" onClick="self. Close();" ><</div>
</TD>
</tr>
</الجدول>
</النموذج>
</الجسم>
</html>
*************************************************************************************************************************************************************************** *************************
/*transact1.asp*/
<!--#include file="../func/conn.inc"-->
<!--#include file="../func/fupload.inc"-->
<!--#include file="../func/myfunctions.inc"-->
<%
إذا Request.ServerVariables("REQUEST_METHOD") = "POST" إذن
الحقول الخافتة
خافت strTitle، strSort، strContent
خافت RS، SQL
خافت iMaxid
خافت strMaxid
خافت سترلين
تعيين الحقول = GetUpload ()
strTitle=BinaryToString(Fields("txtTitle").value)
strSort=BinaryToString(الحقول("txtSort").value)
strContent=BinaryToString(Fields("txtContent").value)
strSort=split(trim(strSort),"-")
إذا كان instr(1,lcase(Fields("file").FileName),".jpg")=0 وinstr(1,lcase(Fields("file").FileName),".gif")=0 إذن
Response.write "<script language='javascript'>alert('الصور المحملة يجب أن تكون بتنسيق gif أو jpg')</script>"
Response.write "<script language='javascript'>window.location='addemployee.asp';</script>"
الاستجابة.نهاية
ينتهي إذا
كانت الحقول ("ملف").Length> 500000 إذن
Response.write "<script language='javascript'>alert('يسمح فقط بتحميل الصور التي لا يزيد حجمها عن 500 كيلو');</script>"
Response.write "<script language='javascript'>window.location='addemployee.asp';</script>"
Response.end
النهاية إذا
'/*حفظ في قاعدة البيانات*/
إذا كانت الحقول ("ملف").اسم الملف<>"" إذن
تعيين rs=Server.CreateObject("ADODB.Recordset")
sSql="اختر * من أمر الموظف حسب وصف المعرف"
rs.open سقل، كون، 2،2
إن لم يكن rs.eof ثم
iMaxid=Clng(rs("id"))+1
strlen=4-len(cstr(iMaxid))
strMaxid=string(strlen,"0") & cstr(iMaxid)
آخر
سترماكسيد = "0001"
نهاية إذا
rs.addnew
rs("id")=strMaxid
rs("title")=strTitle
rs("فرز")=strSort(0)
rs("img").AppendChunk Fields("file").Value
rs("content")=quoteChg(strContent)
rs("todate")=التاريخ()
rs.update
rs. Close
Response.write "<script language='javascript'>تنبيه('أضف سجل بنجاح')</script>"
نهاية إذا
نهاية إذا
%>
************************************************** **********************
/*fupload.inc*/
<SCRIPT RUNAT=لغة الخادم=VBSCRIPT>
Dim UploadSizeLimit
'************************************ GetUpload ************ **********************
'.اسم حقل النموذج (<اسم الإدخال = "..." النوع = "ملف،...">)
'.ContentDisposition = ترتيب المحتوى في حقل النموذج
'.FileName = اسم الملف المصدر لـ <نوع الإدخال=ملف>
'.ContentType = نوع المحتوى لـ <input type=file>
'.Value = القيمة الثنائية للحقل المصدر.
'.Length = Len لحقل البيانات الثنائية
الدالة GetUpload()
نتيجة خافتة
تحديد النتيجة = لا شيء
إذا كانت Request.ServerVariables("REQUEST_METHOD") = "POST" فيجب أن تكون طريقة الطلب "POST"
خافت CT، PosB، الحدود، الطول، PosE
CT = Request.ServerVariables("HTTP_Content_Type") 'يقرأ رأس نوع المحتوى
'رد.اكتب CT
"التطبيق/x-www-form-urlencoded
إذا كان LCase(Left(CT, 19)) = "متعدد الأجزاء/بيانات النموذج" فيجب أن يكون رأس "نوع المحتوى" "متعدد الأجزاء/بيانات النموذج"
'هذا طلب تحميل.
"احصل على الحدود والطول من رأس نوع المحتوى."
PosB = InStr(LCase(CT), "boundary=") 'يبحث عن الحدود
إذا PosB > 0 فإن الحدود = منتصف (CT، PosB + 9) 'الحدود المنفصلة
الطول = CLng(Request.ServerVariables("HTTP_Content_Length")) 'الحصول على رأس طول المحتوى
إذا كان "" & UploadSizeLimit<>"" إذن
UploadSizeLimit = clng(UploadSizeLimit)
إذا كان الطول > UploadSizeLimit بعد ذلك
"عند استئناف الخطأ بعد ذلك" يمسح المخزن المؤقت للإدخال
'response.AddHeader "اتصال"، "إغلاق"
"عند الخطأ انتقل إلى 0
طلب.قراءة ثنائية (الطول)
Err.Raise 2، "GetUpload"، "حجم التحميل" & FormatNumber(Length,0) & "B يتجاوز الحد الأقصى" & FormatNumber(UploadSizeLimit,0) & "B"
وظيفة الخروج
نهاية إذا
end if
If length > 0 And Boundary <> "" ثم "هل هناك معلومات مطلوبة حول التحميل؟"
الحدود = "--" والحدود
خافت الرأس، ثنائي
Binary = Request.BinaryRead(Length) 'يقرأ البيانات الثنائية من العميل
' ويسترد حقول التحميل من البيانات الثنائية
تعيين النتيجة = حقول منفصلة (ثنائي، حدود)
ثنائي = فارغ "مسح المتغيرات".
آخر
Err.Raise 10، "GetUpload"، "طلب بطول صفر".
نهاية إذا
آخر
Err.Raise 11، "GetUpload"، "لم يتم إرسال أي ملف."
نهاية إذا
آخر
Err.Raise 1، "GetUpload"، "طريقة طلب غير صالحة."
نهاية إذا
تعيين GetUpload = النتيجة
وظيفة النهاية
'************************************ حقول منفصلة ************ **********************
'تسترجع هذه الوظيفة حقول التحميل من البيانات الثنائية وتعيد ضبط الحقول كمصفوفة
'الثنائي هو مجموعة آمنة لجميع البيانات الثنائية الأولية من الإدخال.
وظيفة الحقول المنفصلة (ثنائية، حدودية)
Dim PosOpenBoundary، PosCloseBoundary، PosEndOfHeader، isLastBoundary
الحقول الخافتة
الحدود = StringToBinary(Boundary)
PosOpenBoundary = InstrB(Binary, Boundary)
PosCloseBoundary = InstrB(PosOpenBoundary + LenB(Boundary), Binary, Boundary, 0)
تعيين الحقول = CreateObject("Scripting.Dictionary")
Do while (PosOpenBoundary > 0 وPosCloseBoundary > 0 وليس isLastBoundary)
"بيانات حقل الرأس والملف/المصدر."
محتوى الرأس الخافت، المحتوى الميداني
"حقول الرأس."
خافت 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()
Field.Name = FormFieldName
Field.ContentDisposition = Content_Disposition
Field.FilePath = SourceFileName
Field.FileName = GetFileName(SourceFileName)
Field.ContentType = Content_Type
Field.Value = FieldContent
Field.Length = LenB(FieldContent)
Fields.Add FormFieldName، الحقل
'هل هذه حدود النهاية؟
TwoCharsAfterEndBoundary = BinaryToString(MidB(Binary, PosCloseBoundary + LenB(Boundary), 2))
'Binary.Mid(PosCloseBoundary + Len(Boundary)، 2).String
isLastBoundary = TwoCharsAfterEndBoundary = "--"
إذا لم يكن isLastBoundary، فعندئذٍ "هذه ليست حدود النهاية - انتقل إلى حقل النموذج التالي."
PosOpenBoundary = PosCloseBoundary
PosCloseBoundary = InStrB(PosOpenBoundary + LenB(Boundary)، ثنائي، Boundary)
نهاية إذا
حلقة
قم بتعيين حقول منفصلة = الحقول
وظيفة النهاية
'************************************ الأدوات المساعدة ************ **********************
الدالة BinaryToString(str)
سترتو = ""
لأني=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)))
نهاية إذا
التالي
وظيفة نهاية
strto
StringToBinary(String)
ديم أنا، ب
لأني = 1 إلى لين (سلسلة)
B = B & ChrB(تصاعدي(منتصف(سلسلة،I،1)))
التالي
سترينجتوبيناري = ب
وظيفة النهاية
"تفصل حقول الرأس عن رأس التحميل
وظيفة GetHeadFields (ByVal Head، Content_Disposition، الاسم، اسم الملف، Content_Type)
Content_Disposition = LTrim(SeparateField(Head، "content-disposition:"، "؛"))
الاسم = (SeparateField(Head, "name=", ";")) 'ltrim
إذا كان اليسار (الاسم، 1) = """" ثم الاسم = منتصف (الاسم، 2، لين (الاسم) - 2)
اسم الملف = (SeparateField(Head, "filename=", ";")) 'ltrim
إذا Left(FileName, 1) = """" ثم FileName = Mid(FileName, 2, Len(FileName) - 2)
Content_Type = LTrim(SeparateField(Head، "content-type:"، "؛"))
وظيفة النهاية
'تفصل الملف بين sStart وsEnd
وظيفة حقل منفصل (من، ByVal sStart، ByVal sEnd)
خافت PosB، بوز، sFrom
sFrom = LCase(من)
PosB = InStr(sFrom, sStart)
إذا PosB > 0 ثم
PosB = PosB + لين (sStart)
PoE = InStr(PosB، sFrom، sEnd)
إذا PosE = 0 ثم PosE = InStr(PosB, sFrom, vbCrLf)
إذا كانت PosE = 0، فإن PosE = Len(sFrom) + 1
حقل منفصل = منتصف (من، PosB، PosE - PosB)
آخر
حقل منفصل = فارغ
نهاية إذا
وظيفة النهاية
'تفصل اسم الملف عن المسار الكامل للملف
الدالة GetFileName(FullPath)
ديم بوس، بوسف
بوسف = 0
بالنسبة إلى Pos = Len(FullPath) إلى الخطوة الأولى -1
حدد الحالة المتوسطة (FullPath، Pos، 1)
الحالة "/"، "": PosF = Pos + 1: Pos = 0
إنهاء التحديد
التالي
إذا PosF = 0 ثم PosF = 1
GetFileName = منتصف (FullPath، PosF)
وظيفة النهاية
</النص>
<SCRIPT RUNAT=لغة الخادم=JSCRIPT>
// تقوم الوظيفة بإنشاء كائن حقل.
الدالة CreateUploadField(){ إرجاع 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
}
</النص>