Hochgeladenes Skript verwendet
Unten finden Sie ein Beispiel für das hochgeladene Skript für die Entwicklung. Die Download -Datei in diesem Artikel enthält die Dateien und den Code im Beispiel. Lassen Sie die komprimierte Datei auf einen Pfad frei und konfigurieren Sie einen virtuellen Pfad für Ihren Netzwerkserver. Sie können die Uploadform.html im Browser testen und starten.
Anrufskript
Im Folgenden finden Sie die Methode für die BuildUploadRequest. Rufen Sie zuerst einen vollständigen Prozess an: UploadRequest. Rufen Sie dann die builUploadRequest -Methode auf und senden Sie sie dann an die ursprünglichen Binärdaten in der unabhängigen Variablen.
byteCount = request.totalbytes
RequestBin = Request.BinaryRead (ByteCount)
Dim UploadRequest
uploadRequest = createObject einrichten
BuildUploadRequest RequestBin
Die Daten werden im Wörterbuchobjekt zerlegt und gespeichert und mit der Methode () () wiederhergestellt. Diese Elementdaten können in VBS -Variablen gespeichert und überall im Code verwendet werden. Daten können als Antwort auf den Client oder im ASP -Code oder in der Datei übertragen und in die Datenbank eingesetzt werden.
Daten abrufen
Die Daten des UploadRequest -Objekts können mit der Funktion der Element ("Schlüssel") zugegriffen werden. Betrachten wir diese Situation jetzt: Zugriff auf den Wert einer E -Mail -Steuerung. Sie können das tun:
E -Mail = UploadRequest.Item ("E -Mail").
Da es sich um eine Textsteuerung handelt, ist der Inhalt eine Zeichenfolge, diese Zeichenfolge kann wie jede andere VBScript -Zeichenfolge verwendet werden. Für binäre Daten können Sie den Inhalt in derselben Methode wiederherstellen:
Piction = uploadRequest.Item ("Blob").
Sie können auch auf andere Informationen zugreifen, z. B. Dateinamen und Inhaltstyp. Sie sind Textkontrolle.
ContentType = UploadRequest.Item ("Blob").
filepathname = uploadRequest.Item ("Blob").
Verwenden Sie Daten im VBScript -Code
Die hochgeladenen Daten können wie andere Variablen im VBScript -Code verwendet werden. Zum Beispiel können sie als Antwort an den Kunden zurücksenden.
Ihre E -Mail lautet: < % = E -Mail %>
Dateiname von Young ist < % = filepathname %>
Der Dateityp Ihrer Potierung ist < % = contentType %>
Binärdaten können auch an den Client zurückgesandt werden. Ein Inhaltstyp muss festgelegt werden, und binäre Daten können verwendet werden, um die BinaryWrite-Methode zu schreiben.
response.contentType = contentType response
Schreiben Sie hochgeladene Daten in die Datei
Im Falle einer Dateiklassensteuerung besteht der Zweck darin, Binärdaten in eine Datei- oder Datenbankdomäne zu speichern, anstatt sie an den Client zurückzugeben. Dieser Zweck sind die inhärenten Eigenschaften des Hochladens von Dateien. Verwenden Sie das Dateisystemobjekt, um die hochgeladene Datei in das Dateisystem des Servers zu speichern.
Erstellen Sie zuerst ein Dateisystemobjekt:
'Create FileSyTemObject Component scriptObject = server.createObject ("scripting.FilesSystemObject"))
Verwenden Sie das Dateisystemobjekt, um eine Datei im Pfad zu erstellen. Der Pfad kann absolut sein und direkt auf das Dateisystem (z. B. C:/temp) hinweisen. Es kann auch unter einem vom Netzwerkserver definierten virtuellen Pfad relativ sein. Verwenden Sie die Mappath -Methode und die Variable path_info server, um den virtuellen Pfad zum absoluten Pfad zu bringen.
Die Schreibmethode erfordert eine Dual -Byte -Zeichenfolge als unabhängige Variable, sodass die Einzel -Byte -Nummer in eine Zeichenfolge konvertiert wird. Die Schreibmethode ist für die Konvertierung dieser Dual -Byte -Zeichenfolge und zum Schreiben in ASCII -Format verantwortlich. Dadurch enthält ein binärer Inhalt, der unsere ursprüngliche Single -Byte -Zeichenfolge enthält. Ich habe diese Datei "hochgeladen + Dateiname" bezeichnet.
'Erstellen und schreiben Sie in eine Datei, die myFile = scriptObject.createTextFile (server.mappath (request.servervariables_ ("path_info") & "hochgeladen" & Dateiname) festgelegt wird.
für i = 1 bis lenb (Wert)
myFile.write chr (ASCB (Midb (Wert, i, 1)))
nächste
myfile.close
Starten Sie die hochgeladenen Daten in die Datenbank
Daten können auch in der Datenbank gespeichert werden. Inhaltstyp sollte auch in der Datenbank gespeichert werden, damit Daten später angezeigt werden können. Zunächst müssen wir eine Verbindung mit der Datenbank herstellen.
Setzen Sie conn = server.createObject ("adodb.Connection").
conn.open "dsn = Wroxdns", "Benutzer", "Pass"
Erstellen Sie dann einen Datensatz aus der Verbindung:
SQL = "Foto, ContentType von mytable auswählen"
Setzen Sie rs = server.createObject
Rs.oopen SQL, Conn, 3, 3, 3
Nachdem der Datensatz erstellt wurde, legen Sie Binärdaten in die Blob -Domäne der Datenbank:
picturechunk = picture & chrb (0)
Rs.Fields ("Piction").
Rs.fields ("contentType") = contentType
Rs.Update
conn.close
In der ApendChunk -Methode muss ich einen Fehler lösen. Tatsächlich bemerkte ich, dass bei binären Daten die Blinddaten -Methode das letzte Byte nicht überträgt. Die Lösung besteht darin, ein CHR (0) hinzuzufügen, um sicherzustellen, dass alle Bytes übertragen werden. Vielleicht gibt es andere Methoden, wenn ja, bitte sagen Sie es mir.
Verwenden Sie denselben Datensatzsatz und verwenden Sie den richtigen Inhaltstyp, um sie als Antwort an den Client zurück zu senden, um die Datenbank zu reflektieren.
response.contentType = rs.fields ("contentType")
size = rs.fields ("piction")
BLOB = Rs.Fields ("Potion").
Antwort.BININYWRITE BLOB
abschließend
Dieser Artikel zeigt eine vollständige Möglichkeit, die Datei mit VBScript zu leisten. Die Codierung ist vollständig vbscript, unabhängig von Produkten der dritten Party.
Stellen Sie zunächst den Uploading-Prozess ein (mit dem Inhalt "Multipart/Form-Data" für HTML). Stellen Sie dann den hochgeladenen VBScript -Code im Detail vor. Zu Beginn eine kurze Überprüfung der VBScript -Funktion der Betriebszeichenfolge und einer einzelnen Byte -Zahlenreihe. Stellen Sie dann den Code des Skripts und die Struktur des Hochladens der Daten ein.
Schließlich mehrere Zwecke dieses Skripts, vom Hochladen von Variablen im ASP -Code auf Datenbank- oder Dateisysteme zum Speichern von Upload -Dateien.
Klicken Sie auf den Link unten, um <a href = "http://www.asptoday.com/articles/images/20000316.zip"> dem Routinecode dieses Artikels herunterzuladen.