ماذا يجب أن تفعل إذا كنت تريد وضع الصور أو الملفات الخاصة بجهازك على الخادم؟ هناك ثلاثة خيارات: 1. تحميل FTP، 2. استخدام محرك أقراص USB محمول للنسخ إلى الخادم، 3. إذا كان الخادم يدعم وظيفة تحميل ASP، استخدم صفحة الويب. يقوم المتصفح بتحميل الملف إلى الخادم.
نشرح اليوم كيفية استخدام وظيفة التحميل الخاصة بـ asp لتحميل الملفات المحلية إلى الخادم.
يتضمن أبسط نظام الملفات الثلاثة التالية:
upload.htm - تحميل ملف المنفذ، حدد الملف المحلي uploadimg.asp - تحميل ملف التحكم في البرنامج upload_5xsoft.inc - لا توجد فئة تحميل مكون، لا يحتاج المبتدئون إلى تعلم هذا الملف، طالما يمكنهم استخدامه
محتوى upload.htm--تحميل ملف المنفذ، حدد الملف المحلي
- <أتش تي أم أل>
- <الرأس>
- </الرأس>
- <الجسم>
- <tablewidth=80%border=0align=center>
- <formname=form1method=postaction=uploadimg.aspenctype=multipart/form-data>
- <تر>
- <tdalign=center><inputname=upfiletype=fileid=upfile></td>
- </tr>
- <تر>
- <tdalign=center><inputtype=submitname=Submitvalue=رفع الصور></td>
- </tr>
- </النموذج>
- </الجدول>
- </الجسم>
- </html>
محتوى uploadimg.asp--تحميل ملف التحكم في البرنامج
- <!--#includeFILE=upload_5xsoft.inc-->
- <%
- dimupload، ملف، filepath
- مسار الملف=تحميل/
- setupload=newupload_5xSoft''إنشاء كائن تحميل
- يسرد foreachformNameinupload.file'' جميع الملفات التي تم تحميلها
- setfile=upload.file(formName)'' ينشئ كائن ملف
- iffile.FileSize>0 ثم ''إذا كان FileSize>0، فهذا يعني أن هناك بيانات الملف
- fname=file.filename
- file.SaveAsServer.mappath(filepath&fname)''حفظ الملف
- com.endif
- setfile=لا شيء
- التالي
- setupload=لا شيء''احذف هذا الكائن
محتوى upload_5xsoft.inc
- محتوى هذا الملف لا ينتمي إلى محتوى هذا التدريب. يطبق هذا التدريب هذه الطريقة
- <SCRIPTRUNAT=SERVERLANGUAGE=VBSCRIPT>
- dimoUpFileStream
- Classupload_5xSoft
- ديمفورم، ملف، الإصدار
- PrivateSubClass_Initialize
- dimRequestBinDate,sStart,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo
- dimiFileSize،sFilePath،sFileType،sFormvalue،sFileName
- dimiFindStart,iFindEnd
- dimiFormStart,iFormEnd,sFormName
- الإصدار = لا توجد فئة تحميل مكون الإصدار 0.93
- setForm=Server.CreateObject(Scripting.Dictionary)
- setFile=Server.CreateObject(Scripting.Dictionary)
- ifRequest.TotalBytes<1thenExitSub
- settStream=Server.CreateObject(adodb.stream)
- setoUpFileStream=Server.CreateObject(adodb.stream)
- oUpFileStream.Type=1
- oUpFileStream.Mode=3
- oUpFileStream.Open
- oUpFileStream.WriteRequest.BinaryRead(Request.TotalBytes)
- Response.Write<fontsize=2>وقت تنفيذ الصفحة: &FormatNumber((Timer()-time1)*1000,3)&ملي ثانية</font><br>
- oUpFileStream.Position=0
- RequestBinDate=oUpFileStream.Read
- إيفورمستارت=1
- iFormEnd=LenB(RequestBinDate)
- bCrLf=chrB(13)&chrB(10)
- sStart=MidB(RequestBinDate,1,InStrB(iFormStart,RequestBinDate,bCrLf)-1)
- iStart=LenB(sStart)
- iFormStart=iFormStart+iStart+1
- بينما(iFormStart+10)<iFormEnd
- iInfoEnd=InStrB(iFormStart,RequestBinDate,bCrLf&bCrLf)+3
- tStream.Type=1
- tStream.Mode=3
- tStream.Open
- oUpFileStream.Position=iFormStart
- oUpFileStream.CopyTotStream،iInfoEnd-iFormStart
- tStream.Position=0
- tStream.Type=2
- tStream.Charset=gb2312
- sInfo=tStream.ReadText
- "الحصول على اسم عنصر النموذج."
- iFormStart=InStrB(iInfoEnd,RequestBinDate,sStart)
- iFindStart=InStr(22,sInfo,name=,1)+6
- iFindEnd=InStr(iFindStart,sInfo,,1)
- sFormName=Mid(sinfo,iFindStart,iFindEnd-iFindStart)
- 'إذا كان ملفًا
- ifInStr(45,sInfo,filename=,1)>0ثم
- setoFileInfo=newFileInfo
- "احصل على اسم الملف
- iFindStart=InStr(iFindEnd,sInfo,filename=,1)+10
- iFindEnd=InStr(iFindStart,sInfo,,1)
- sFileName=Mid(sinfo,iFindStart,iFindEnd-iFindStart)
- oFileInfo.FileName=getFileName(sFileName)
- oFileInfo.FilePath=getFilePath(sFileName)
- "الحصول على نوع الملف
- iFindStart=InStr(iFindEnd,sInfo,Content-Type:,1)+14
- iFindEnd=InStr(iFindStart,sInfo,vbCr)
- oFileInfo.FileType=Mid(sinfo,iFindStart,iFindEnd-iFindStart)
- oFileInfo.FileStart=iInfoEnd
- oFileInfo.FileSize=iFormStart-iInfoEnd-3
- oFileInfo.FormName=sFormName
- file.addsFormName,oFileInfo
- آخر
- 'إذا كان عنصر نموذج
- tStream.Close
- tStream.Type=1
- tStream.Mode=3
- tStream.Open
- oUpFileStream.Position=iInfoEnd
- oUpFileStream.CopyTotStream،iFormStart-iInfoEnd-3
- tStream.Position=0
- tStream.Type=2
- tStream.Charset=gb2312
- sFormvalue=tStream.ReadText
- form.AddsFormName،sFormvalue
- com.endif
- tStream.Close
- iFormStart=iFormStart+iStart+1
- com.wind
- RequestBinDate=
- setStream=لا شيء
- EndSub
- PrivateSubClass_Terminate
- ifnotRequest.TotalBytes<1then
- form.RemoveAll
- file.RemoveAll
- setform=لا شيء
- setfile=لا شيء
- oUpFileStream.Close
- setoUpFileStream=لا شيء
- com.endif
- EndSub
- وظيفة خاصةGetFilePath (FullPath)
- إذاFullPath<>ثم
- GetFilePath=left(FullPath,InStrRev(FullPath,))
- آخر
- GetFilePath=
- EndIf
- وظيفة النهاية
- وظيفة خاصةGetFileName (FullPath)
- إذاFullPath<>ثم
- GetFileName=mid(FullPath,InStrRev(FullPath,)+1)
- آخر
- GetFileName=
- EndIf
- وظيفة النهاية
- فئة النهاية
- ClassFileInfo
- dimFormName،اسم الملف،FilePath،FileSize،FileType،FileStart
- PrivateSubClass_Initialize
- اسم الملف=
- مسار الملف=
- حجم الملف=0
- بداية الملف=0
- اسم النموذج=
- نوع الملف=
- EndSub
- الوظيفة العامة حفظ باسم (FullPath)
- dimoFileStream,ErrorChar,i
- حفظ باسم=1
- iftrim(fullpath)=orright(fullpath,1)=/thenexitfunction
- setoFileStream=CreateObject(Adodb.Stream)
- oFileStream.Type=1
- oFileStream.Mode=3
- oFileStream.Open
- oUpFileStream.position=FileStart
- oUpFileStream.copytooFileStream، حجم الملف
- oFileStream.SaveToFileFullPath,2
- oFileStream.Close
- setoFileStream=لا شيء
- حفظ باسم=0
- endfunction
- فئة النهاية
- </النص>
ما تصفه هذه المقالة هو أبسط برنامج لتحميل الملفات، يرجى تحليله بنفسك، بعد تعلم هذا التمرين، ستتقن بشكل أساسي وظيفة التحميل العامة لـ ASP.