คุณควรทำอย่างไรหากต้องการวางรูปภาพหรือไฟล์ของเครื่องของคุณไว้บนเซิร์ฟเวอร์ มีสามตัวเลือก: 1. อัปโหลด FTP 2. ใช้แฟลชไดรฟ์ USB เพื่อคัดลอกไปยังเซิร์ฟเวอร์ 3. หากเซิร์ฟเวอร์รองรับ ฟังก์ชั่นอัพโหลด ASP ใช้หน้าเว็บ เบราว์เซอร์อัพโหลดไฟล์ไปยังเซิร์ฟเวอร์
วันนี้เราจะอธิบายวิธีใช้ฟังก์ชันอัพโหลดของ ASP เพื่ออัพโหลดไฟล์ในเครื่องไปยังเซิร์ฟเวอร์
ระบบที่ง่ายที่สุดประกอบด้วยสามไฟล์ต่อไปนี้:
upload.htm --อัปโหลดไฟล์พอร์ต เลือกไฟล์ในเครื่อง uploadimg.asp --อัปโหลดไฟล์ควบคุมโปรแกรม upload_5xsoft.inc --ไม่มีคลาสอัปโหลดส่วนประกอบ ผู้เริ่มต้นไม่จำเป็นต้องเรียนรู้ไฟล์นี้ ตราบใดที่ยังสามารถใช้งานได้
เนื้อหา upload.htm--อัปโหลดไฟล์พอร์ต เลือกไฟล์ในเครื่อง
- <html>
- <หัว>
- </หัว>
- <ร่างกาย>
- <tablewidth=80%border=0align=center>
- <formname=form1method=postaction=uploadimg.aspenctype=multipart/form-data>
- <tr>
- <tdalign=center><inputname=upfiletype=fileid=upfile></td>
- </tr>
- <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>0then''If FileSize>0 หมายความว่ามีข้อมูลไฟล์
- fname=file.ชื่อไฟล์
- file.SaveAsServer.mappath(filepath&fname)''บันทึกไฟล์
- สิ้นสุด
- setfile=ไม่มีอะไร
- ต่อไป
- setupload=nothing''ลบวัตถุนี้
เนื้อหา upload_5xsoft.inc
--เนื้อหาของไฟล์นี้ไม่ได้อยู่ในเนื้อหาของการเจาะนี้
- <SCRIPTRUNAT=SERVERLANGUAGE=VBSCRIPT>
- dimoUpFileStream
- Classupload_5xSoft
- dimForm,ไฟล์,เวอร์ชัน
- PrivateSubClass_Initialize
- dimRequestBinDate, sStart, bCrLf, sInfo, iInfoStart, iInfoEnd, tStream, iStart, oFileInfo
- dimiFileSize,sFilePath,sFileType,sFormvalue,sFileName
- dimiFindStart, iFindEnd
- dimiFormStart,iFormEnd,sFormName
- Version=ไม่มีคลาสอัพโหลดส่วนประกอบ Version0.93
- setForm=Server.CreateObject(สคริปต์.พจนานุกรม)
- setFile=Server.CreateObject(สคริปต์.พจนานุกรม)
- ifRequest.TotalBytes<1แล้วExitSub
- settStream=Server.CreateObject(adodb.stream)
- setoUpFileStream=Server.CreateObject(adodb.stream)
- oUpFileStream.Type=1
- oUpFileStream.Mode=3
- oUpFileStream.เปิด
- oUpFileStream.WriteRequest.BinaryRead (คำขอ TotalBytes)
- Response.Write<fontsize=2>เวลาดำเนินการเพจ: &FormatNumber((Timer()-time1)*1000,3)&มิลลิวินาที</font><br>
- oUpFileStream.Position=0
- RequestBinDate=oUpFileStream.Read
- iFormStart=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.เปิด
- oUpFileStream.Position=iFormStart
- oUpFileStream.CopyTotStream,iInfoEnd-iFormStart
- tStream.ตำแหน่ง=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=กลาง(sinfo,iFindStart,iFindEnd-iFindStart)
- 'ถ้าเป็นไฟล์
- ifInStr(45,sInfo,filename=,1)>0แล้ว
- setoFileInfo=newFileInfo
- 'รับชื่อไฟล์
- iFindStart=InStr(iFindEnd,sInfo,ชื่อไฟล์=,1)+10
- iFindEnd=InStr(iFindStart,sInfo,,1)
- sFileName=กลาง(sinfo,iFindStart,iFindEnd-iFindStart)
- oFileInfo.FileName=getFileName(sFileName)
- oFileInfo.FilePath=getFilePath(sFileName)
- 'รับประเภทไฟล์
- iFindStart=InStr(iFindEnd,sInfo,ประเภทเนื้อหา:,1)+14
- iFindEnd=InStr(iFindStart,sInfo,vbCr)
- oFileInfo.FileType=กลาง(sinfo,iFindStart,iFindEnd-iFindStart)
- oFileInfo.FileStart=iInfoEnd
- oFileInfo.FileSize=iFormStart-iInfoEnd-3
- oFileInfo.FormName=sFormName
- file.addsFormName,oFileInfo
- อื่น
- 'ถ้าเป็นไอเทมรูปแบบ
- tStream.ปิด
- tStream.Type=1
- tStream.Mode=3
- tStream.เปิด
- oUpFileStream.Position=iInfoEnd
- oUpFileStream.CopyTotStream,iFormStart-iInfoEnd-3
- tStream.ตำแหน่ง=0
- tStream.Type=2
- tStream.Charset=gb2312
- sFormvalue=tStream.ReadText
- form.AddsFormName,sFormvalue
- สิ้นสุด
- tStream.ปิด
- iFormStart=iFormStart+iStart+1
- เวน
- RequestBinDate=
- setStream=ไม่มีอะไร
- สิ้นสุดย่อย
- PrivateSubClass_Terminate
- ifnotRequest.TotalBytes<1แล้ว
- แบบฟอร์ม RemoveAll
- ไฟล์ RemoveAll
- setform=ไม่มีอะไร
- setfile=ไม่มีอะไร
- oUpFileStream.ปิด
- setoUpFileStream=ไม่มีอะไร
- สิ้นสุด
- สิ้นสุดย่อย
- PrivatefunctionGetFilePath (FullPath)
- IfFullPath<>จากนั้น
- GetFilePath=ซ้าย(FullPath,InStrRev(FullPath,))
- อื่น
- GetFilePath=
- สิ้นสุดถ้า
- สิ้นสุดฟังก์ชัน
- PrivatefunctionGetFileName (FullPath)
- IfFullPath<>จากนั้น
- GetFileName=mid(FullPath,InStrRev(FullPath,)+1)
- อื่น
- GetFileName=
- สิ้นสุดถ้า
- สิ้นสุดฟังก์ชัน
- จบคลาส
- ClassFileInfo
- dimFormName, ชื่อไฟล์, FilePath, ขนาดไฟล์, ประเภทไฟล์, FileStart
- PrivateSubClass_Initialize
- ชื่อไฟล์=
- เส้นทางไฟล์=
- ขนาดไฟล์=0
- ไฟล์สตาร์ท=0
- ชื่อแบบฟอร์ม=
- ประเภทไฟล์=
- สิ้นสุดย่อย
- ฟังก์ชั่นสาธารณะบันทึกเป็น (FullPath)
- dimoFileStream,ErrorChar,i
- บันทึกเป็น=1
- iftrim(fullpath)=orright(fullpath,1)=/thenexitfunction
- setoFileStream=CreateObject(Adodb.Stream)
- oFileStream.Type=1
- oFileStream.Mode=3
- oFileStream.เปิด
- oUpFileStream.position=FileStart
- oUpFileStream.copytooFileStream,ขนาดไฟล์
- oFileStream.SaveToFileFullPath,2
- oFileStream.ปิด
- setoFileStream=ไม่มีอะไร
- บันทึกเป็น=0
- ฟังก์ชั่นสุดท้าย
- จบคลาส
- </สคริปต์>
สิ่งที่บทความนี้อธิบายคือโปรแกรมที่ง่ายที่สุดสำหรับการอัพโหลดไฟล์ เพื่อนๆ โปรดวิเคราะห์ด้วยตัวเอง หลังจากเรียนรู้การเจาะลึกนี้ คุณจะเชี่ยวชาญฟังก์ชันการอัพโหลดทั่วไปของ ASP