Das im letzten Mal erwähnte hochgeladene Bild wurde ohne von Daoxiang Laonong entwickelte Komponenten hochgeladen. Mit dem Upload -Vorgang wird das Bild zuerst im angegebenen Ordner und gleichzeitig den Pfad zum Datenbankfeld speichern. Das Anzeigebild wird gemäß dem Pfadfeld in der Datenbanktabelle angezeigt. Natürlich im Zusammenhang mit der Verwaltung von Bildern wie Löschen: Nur der Pfad wird gelöscht, und das tatsächliche Bild muss nach FSO nach dem Weg gelöscht werden ...
Gibt es eine Situation, in der das Bild direkt als Feldwert gespeichert wird? Operationen auf Bildern sind so kompetent wie Betriebsdatenfelder. Die Antwort lautet Ja, stellen Sie einfach den Feld des Feldes auf ein OLE -Objekt ein
Wissenspunkt: Das Feld OLE -Objekt wird verwendet, um Daten für Dokumente, Bilder, Sounds und andere Arten von binären Daten zu speichern, die in anderen Programmen erstellt wurden. Oale Objekte können in Microsoft -Zugriffstabellen in Felder verknüpft oder eingebettet werden.
1. Entwurfsdatenbank Testimg.mdb
Für einfache Debugging, Designtabelle imgurl mit zwei Feldern: ID (Autonummer, Schlüsselwort), IMG (OLE -Objekt)
2. Stellen Sie eine Verbindung zur Datenbankdatei Conn.asp her
<% db_path = "Testimg.mdb" Setzen Sie conn = server.createObject ("adodb.Connection"). connStr = "treiber = {Microsoft Access Treiber (*.mdb)}; dbq =" & server.mappath (db_path) Conn.open Connstr %> |
3. Geben Sie das Formular Page upload.html zum Hochladen von Bildern an
<form action = "upload.asp" methode = "post" engType = "MultiPart/Form-Data"> <Eingabe type = "Datei" name = "imgurl"> <Eingabe type = "Senden" name = OK value = "OK"> </form> |
4. Akzeptieren Sie Daten und fügen Sie die Datensatzseite hinzu upload.asp
<!-#include File = "conn.asp"-> <% formSize = request.totalbytes FormData = Request.BinaryRead (Formsize) bncrlf = chrb (13) & chrb (10) Divider = link (FormData, CLNG (Instrb (FormData, Bncrlf))-1) DataStart = Instrb (FormData, Bncrlf & Bncrlf) +4 Dataend = Instrb (DataStart+1, FormData, Teiler) -Datastart MyData = Midb (FormData, DataStart, DataSend) Setzen Sie rs = server.createObject ("adodb.recordset") rs.open "Select * von Imgurl", Conn, 3,3 rs.addnew RS ("IMG"). appendChunk mydata Rs.Update rs.close Setzen Sie Rs = nichts Setzen Sie Conn = nichts Antwort.Redirect "index.asp" %> |
5. Extrahieren Sie den Inhalt des Bildfelds in der Datenbanktabelle, um die Bilderseite showimg.asp anzuzeigen