eins. Analyse des Implementierungsprinzips des Datei -Uploads basierend auf ASP
Das Grundprinzip ist: Verwenden Sie die BinaryRead -Methode des ADO -Stream -Objekts, um alle Daten im Formular vorzulesen, die erforderlichen Dateidaten abzufangen und in Binärdateien zu speichern.
Hier ist ein Beispiel für die Seite Upload -Datei (Upload.htm):
<html><body><form name="Upload" Method="Post" Enctype="multipart/form-data" Action="Upload.asp"><input type="file" name="FileName"><INPUT TYPE="Submit" VALUE="Upload"></TD></form></body></html>
Das Dateiobjekt wird im Programm verwendet, so dass die ursprünglichen Daten mithilfe der BinaryRead -Methode in Upload gelesen werden. ASP enthält nicht nur die Daten der ausgewählten Datei selbst, sondern enthält auch Beschreibungen des Pfades, der Formulardomänenname der Einreichungsseite und anderen zugehörigen Informationen auf der Hardfabrik des Benutzers. Auf diese Weise müssen wir den spezifischen Inhalt der Datei daraus extrahieren. Laut der Analyse sind die Trennlinie zwischen den Header -Informationen der Daten und den Daten zwei Paare der Kutschenrückkehrlinienbrüche, und am Ende trennten auch Informationen. Wir können eine ähnliche Methode verwenden, um Dateidaten zu erhalten.
Dim formData.Formsize, DataStart, Clstr, divstrformsize = request.totalBytesFormData = request.BinaryRead (Formsize) clstr = chrb (13) & chrb (10) datAstart = Instrb (FormData.clstr & clstr)+4'4 sind zwei die Länge der Länge des Markenrücklaufs -Bruchcharakters sind zwei DivStr = links (FormData, Instrb (FormData, Clstr) -1) dataSize = instrb (DataStart+1, FormData, DivStr) -Datastart-2FormData = Midb (FormData, DataStart, DataSeze) FormData ist der Inhalt der Datei.
Die entsprechende Behandlung kann nach Bedarf in der Mitte durchgeführt werden. Die letzte Aufgabe besteht darin, die Datei zu speichern. Es gibt zwei Möglichkeiten zum Speichern: Eine besteht darin, Binärdatei -Betriebsmethoden in Programmen wie VB oder VC zu verwenden, dem Projekt entsprechende Bibliotheken hinzuzufügen und schließlich in eine DLL -Datei zu kompilieren und die DLL -Datei bei der Verwendung zu registrieren. Das Dateispeicherprogramm lautet wie folgt:
Public Function SaveFile(Pathname As String) As String Dim objContext As ObjectContext Dim objRequest As Request Set objContext=GetObjectContext() Set objRequest=objContext("Request") 'The following piece of code is a related operation for file storage Dim FormData() As Byte,CLStr,DivStr Dim DataStart As Long,DataSize As Long DataSize = objRequest.TotAlBytes Redim formData (DataSize-1) formData = objRequest.BinaryRead (DataSasize) clstr = chrb (13) & chrb (10) datAstart = instrb (formData, clstr & clstr) +4 divstr = linke (FormData, Instrument (Formdata, CLSTR), CLSTR. DataSize = Instrb (DataStart+1, FormData, DivStr) -DatAstart-2 FormData = Midb (FormData, DataStart, DataSize) 'Erstellen Sie eine binäre Datei und schreiben Sie FormData, um den Pfadname für binäre Binärdateien zu öffnen. EndfunktionDie zweite Methode besteht darin, die im ADO -Stream bereitgestellte Binärdatei -Betriebsmethode zu verwenden. Die Anweisung zum Speichern der Datei lautet: StreamObj.SavetoFile (Dateiname, 2). In dieser Art von Operation können wir die relevanten Vorgänge in einer Klassendatei speichern. Fügen Sie bei der Bewerbung einfach die Klassendatei in das ASP -Programm auf. Weitere Verarbeitungsmethoden finden Sie in der relevanten Einführung.