Was sollten Sie tun, wenn Sie die Bilder oder Dateien Ihres Geräts auf den Server legen möchten? Es gibt drei Möglichkeiten: 1. FTP-Upload, 2. Verwenden Sie einen USB-Stick zum Kopieren auf den Server, 3. Wenn der Server das unterstützt ASP-Upload-Funktion, verwenden Sie die Webseite. Der Browser lädt die Datei auf den Server hoch.
Heute erklären wir, wie man die Upload-Funktion von asp nutzt, um lokale Dateien auf den Server hochzuladen.
Das einfachste System umfasst die folgenden drei Dateien:
upload.htm – Portdatei hochladen, lokale Datei auswählen uploadimg.asp – Programmsteuerdatei hochladen upload_5xsoft.inc – Kein Komponenten-Upload-Kurs, Anfänger müssen diese Datei nicht lernen, solange sie sie verwenden können
upload.htm-Inhalt – Portdatei hochladen, lokale Datei auswählen
- <html>
- <Kopf>
- </head>
- <Körper>
- <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=Bilder hochladen></td>
- </tr>
- </form>
- </table>
- </body>
- </html>
uploadimg.asp-Inhalt – Programmsteuerdatei hochladen
- <!--#includeFILE=upload_5xsoft.inc-->
- <%
- dimupload,Datei,Dateipfad
- Dateipfad=UPLOAD/
- setupload=newupload_5xSoft''Upload-Objekt erstellen
- „foreachformNameinupload.file“ listet alle hochgeladenen Dateien auf
- setfile=upload.file(formName)'' generiert ein Dateiobjekt
- iffile.FileSize>0then''Wenn FileSize>0 bedeutet, dass Dateidaten vorhanden sind
- fname=Datei.Dateiname
- file.SaveAsServer.mappath(filepath&fname)''Datei speichern
- endif
- setfile=nichts
- nächste
- setupload=nothing''Dieses Objekt löschen
upload_5xsoft.inc-Inhalt
--Der Inhalt dieser Datei gehört nicht zum Inhalt dieser Übung. Bei dieser Übung wird diese Methode angewendet
- <SCRIPTRUNAT=SERVERLANGUAGE=VBSCRIPT>
- dimoUpFileStream
- Classupload_5xSoft
- dimForm,Datei,Version
- PrivateSubClass_Initialize
- dimRequestBinDate,sStart,bCrLf,sInfo,iInfoStart,iInfoEnd,tStream,iStart,oFileInfo
- dimiFileSize,sFilePath,sFileType,sFormvalue,sFileName
- dimiFindStart,iFindEnd
- dimiFormStart,iFormEnd,sFormName
- Version=Keine Komponenten-Upload-Klasse Version0.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>Seitenausführungszeit: &FormatNumber((Timer()-time1)*1000,3)&millisekunden</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
- while(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
- 'Formularelementnamen abrufen
- iFormStart=InStrB(iInfoEnd,RequestBinDate,sStart)
- iFindStart=InStr(22,sInfo,name=,1)+6
- iFindEnd=InStr(iFindStart,sInfo,,1)
- sFormName=Mid(sinfo,iFindStart,iFindEnd-iFindStart)
- „Wenn es eine Datei ist
- ifInStr(45,sInfo,filename=,1)>0then
- setoFileInfo=newFileInfo
- 'Holen Sie sich den Dateinamen
- 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)
- 'Dateityp abrufen
- 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
- anders
- 'Wenn es sich um ein Formularelement handelt
- 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
- endif
- tStream.Close
- iFormStart=iFormStart+iStart+1
- wenden
- RequestBinDate=
- setStream=nichts
- EndSub
- PrivateSubClass_Terminate
- ifnotRequest.TotalBytes<1then
- form.RemoveAll
- file.RemoveAll
- setform=nichts
- setfile=nichts
- oUpFileStream.Close
- setoUpFileStream=nichts
- endif
- EndSub
- PrivatefunctionGetFilePath(FullPath)
- IfFullPath<>Then
- GetFilePath=left(FullPath,InStrRev(FullPath,))
- Anders
- GetFilePath=
- EndIf
- Funktion beenden
- PrivatefunctionGetFileName(FullPath)
- IfFullPath<>Then
- GetFileName=mid(FullPath,InStrRev(FullPath,)+1)
- Anders
- GetFileName=
- EndIf
- Funktion beenden
- EndClass
- ClassFileInfo
- dimFormName,FileName,FilePath,FileSize,FileType,FileStart
- PrivateSubClass_Initialize
- Dateiname=
- FilePath=
- Dateigröße=0
- FileStart=0
- FormName=
- FileType=
- EndSub
- Öffentliche FunktionSaveAs(FullPath)
- dimoFileStream,ErrorChar,i
- Speichern unter = 1
- iftrim(fullpath)=orright(fullpath,1)=/thenexitfunction
- setoFileStream=CreateObject(Adodb.Stream)
- oFileStream.Type=1
- oFileStream.Mode=3
- oFileStream.Open
- oUpFileStream.position=FileStart
- oUpFileStream.copytooFileStream,FileSize
- oFileStream.SaveToFileFullPath,2
- oFileStream.Close
- setoFileStream=nichts
- Speichern unter = 0
- Endfunktion
- EndClass
- </SCRIPT>
In diesem Artikel wird das einfachste Programm zum Hochladen von Dateien beschrieben. Bitte analysieren Sie es selbst. Nachdem Sie diese Übung gelernt haben, beherrschen Sie im Grunde die allgemeine Upload-Funktion von ASP.