Es gibt in ASP viele Möglichkeiten um Bilder dynamisch upzuloaden und darzustellen. Sie können z.B. ein Bild in eine Datenbank uploaden. Dies bringt Ihnen, aber nicht immer einen Vorteil. Vorallem nicht, wenn Sie keinen eigenen Server als Host verwenden. Riesige DB´s sind unhandlich und können schlecht gewartet werden! Außerdem müssen Sie eine Komponente installieren und nur wenige HOST´s bieten diesen Service. Sie können dem User trotzdem die Möglichkeit geben Dateien(Bilder z.B.) upzuloaden, ohne dazu eine Komponente registrieren zu müssen. Die Lösung heißt hier: MetaBuilders.FileUp.wsc"-Script:Komponente
Hier erfahren Sie zudem, wie Sie Usern die Möglichkeit geben können, einen Texte zu Veröffentlichen und 1 Bild zu integrieren. Dieses kann der User selbst uploaden. Diese kann in einer ASP-Seite instanziert und geladen werden.
artikelwrite.asp
... Hier steht die Form für die Artikel-Text ... <% if Request.Form("submit") = "Speichern" then ' ---------- Der Artikel-Text werden HTML-Zeilenumbrüche zugewiesen ohneBreak = Request.Form("txtartikel") mitBreak = replace(ohneBreak,vbCrlf,"<br>") mitBreak = replace(mitBreak,[-!!Bild!!-],"<br>[-!!Bild!!-]<br>") strBildPos = inStr(mitBreak,"[-!!Bild!!-]") ' ---------- Abfrage, ob Bild in Maske vorhanden if strBildPos <> 0 then ' ---------- SQL-String um Datensatz mit Bild-Info´s in DB zu speichern strSQL = "INSERT INTO artikel(ArtHead, ArtText, BildName, BildPos) VALUES ('" _ & Request.Form("txthead") & "', '" & mitBreak & "', '" _ & session("FileName") & "', " & strBildPos & ");" else ' ---------- SQL-String um Datensatz ohne Bild-Inf´s in DB zu speichern strSQL = "INSERT INTO artikel(ArtHead, ArtText) VALUES ('" _ & Request.Form("txthead") & "', '" & mitBreak & "');" end if ' ---------- DB-Connection öffnen und SQL-String executen set conn = server.CreateObject("ADODB.Connection") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Inetpub\wwwroot\developer\uploadwsc2\artupload.mdb;Mode=Share Deny None;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;User Id=Admin;PASSWORD=;", "Admin", "" '------------ der SQL-String frägt die DB nach allen Werten der Tabelle Customers ab. conn.Execute strSQL set conn = nothing ' ---------- Abfrage, ob Bildeinfügen gedrückt wurde elseif Request.Form("submit") = "Bild" then ' ---------- Artikel-Info´s in Session-Variablen speichern session("txthead") = Request.Form("txthead") session("txtartikel") = vbCrlf & Request.Form("txtartikel") & "[-!!Bild!!-]" & vbCrlf ' ---------- Upload-Seite für Bild aufrufen Response.Redirect "./upload.asp" end if %> |
Die Upload.asp nimmt nur Dateien mit den Extensionens "gif" und "jpg" entgegen und speichert sie in einem Verzeichnis.
upload.asp
<% ' ---------- Upload-Komponente instanziieren strPfad = "script:" & Server.MapPath("./MetaBuilders.FileUp.wsc" ) set MBRequest = GetObject(strPfad) If MBRequest("submit") = "Upload" then ' ---------- Upload-Komponenten funktionen: ' ---------- Extension abfragen und überprüfen. if MBRequest("File1").Extension = "gif" or MBRequest("File1").Extension = "jpg" then ' ---------- Dateiname in Session-Variable ablegen session("FileName") = MBRequest("File1").FileName ' ---------- Datei speichern MBRequest("File1").Save %><a href="./artikelwrite.asp">Bildupload fertig</a><% ' ---------- wenn ungültige Extension else Response.Write "Es können nur GIF´s und JPG - Dateien upgeloadet werden!" end if set MBRequest = Nothing Else ' ---------- Die Form muß die Eigenschaft "multipart/form-data" um binäre Daten aufzunehmen %> <html> <head> <title>Datei - Upload</title> </head> <body> <h1>Bild - Upload</h1> <form method="post" action="" enctype="multipart/form-data" id=form1 name=form1> <table> <tr><td><input type="file" name="File1"></td></tr> <tr><td><input type="submit" name="submit" value="Upload"></td></tr> </table> </form> </body> </html> <% End If set MBRequest = Nothing %> |
Mit der folgenden Seite können Sie die geschrieben Texte betrachten. Der Text wird aufgesplittet und das Bild in der richtigen Position einfügt.
artikelview.asp
<%@ Language=VBScript %> <html> <head> </head> <body> <% ' ---------- Verbindung zur DB herstellen set conn = server.CreateObject("ADODB.Connection") set rs = Server.CreateObject("ADODB.Recordset") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\Inetpub\wwwroot\developer\uploadwsc2\artupload.mdb;Mode=Share Deny None;Extended Properties="""";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Database Password="""";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="""";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;User Id=Admin;PASSWORD=;", "Admin", "" strSQL = "SELECT * FROM artikel" rs.Open strSQL,conn strArtText = rs.Fields("ArtText") Response.Write "<h1>" & rs.Fields("ArtHead") & "</h1>" ' ---------- Abfragen, ob Bild integriert wurde if rs.Fields("BildPos") = 0 then Response.Write strArtText else ' ---------- Wenn Bild vorhanden dann... strBisBild = left(strArtText,rs.Fields("BildPos") - 1) strNachBild = mid(strArtText,rs.Fields("BildPos") + 12) Response.Write strBisBild & "<img src='" & rs.Fields("BildName") & "'>" & strNachbild end if set rs = nothing set conn = nothing %> </body> </html> |
Unten können Sie den kompletten Code mit Datenbank downloaden.