Wie Speichere ich Bild in der SQL Server-Datenbank mithilfe von Klassischen ASP.?
Ich bin das hochladen einer Bild-Datei, für die, die ich verwendet haben <input type="file" name="browse_file" accept="image/*"/>
in meine form.
Ich habe eine Tabelle namens covers
hat eine Spalte namens img
mit Datentyp image
.
Dies ist, was mein html sieht aus wie
HTML
<table border="1" cellpadding="5" cellspacing="0" width="100%">
<tr>
<td width="20%"><b>Choose Cover:</b></td>
<td>
<input type="file" name="browse_file" accept="image/*"/>
<%
session("file_name") = request.Form("browse_file")
%>
</td>
</tr>
<tr>
<td><strong>Cover Name:</strong></td>
<td><input type="text" name="cover_name" value=""></td>
</tr>
<tr>
<td><strong>Choose Category:</strong></td>
<td>
<select name="disp_cat" onchange="return refresh_cat();">
<option selected="selected" value="0">Choose Category...</option>
<%
sql = "SELECT * from categories"
rs.open sql, con, 1, 2
do while not rs.eof
%>
<% if rs("name") = request.Form("disp_cat") then%>
<option value="<%=rs("name")%>" selected="selected"><%=rs("name")%></option>
<%else%>
<option value="<%=rs("name")%>"><%=rs("name")%></option>
<%end if
rs.movenext
loop
rs.close
%>
</select>
</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="Save" name="save_cover" onclick="return show_alert2();"/>
<input type="submit" value="Cancel" name="cancel" onclick="return go_back();"/>
</td>
</tr>
<%
if request.Form("save_cover") <> "" then
sql = "SELECT * from covers"
rs.open sql, con, 1, 2
rs.addnew
rs("c_name") = request.Form("cover_name")
rs("category") = request.Form("disp_cat")
rs("img") = request.Form("browse_file")
rs("date_upl") = date()
rs.update
response.Write("<script language='javascript'>{update1();}</script>")
rs.close
end if
%>
</table>
Verbindung zur Datenbank definiert ist, in einer separaten Datei namens database.asp
. Die Verbindung funktioniert, weil alle Spalten wie c_name
, category
, date_upl
sind immer in der Datenbank aktualisiert Tabelle covers
außer für die img
Spalte.
Es nicht unter das Bild Weg. Ist rs("img") = request.Form("browse_file")
eine falsche asp-recordset zu aktualisieren, Datenbank-Spalte?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie mit der SQL
Image
Datataype, das ist einbinary field
zum speichern des Bildes selbst, nicht der Weg - wenn Sie nur wollen, zu speichern, den Pfad, den Sie verwenden würden, einvarchar
Daten geben.Wenn Sie möchten, um das Bild zu speichern in der Datenbank (Binär), dann ist der einfachste Weg, es zu tun ist, speichern Sie die Datei auf der Festplatte (mit FreeASPUpload etc), dann sagen Sie SQL zu laden, die Datei in Binär-Spalte, zum Beispiel:
Oder, wenn Sie wollen legen Sie die Formular-Daten dann laden Sie das Bild in SQL-danach:
Persönlich, obwohl ich keine Bilder speichern im SQL, ich halte Sie auf der Festplatte und speichern nur den Dateinamen in SQL, z.B.:
Edit 1: In Der Antwort Auf Ihre Kommentare
Ich nicht normalerweise Schreibe Völker-code für Sie, aber Sie scheinen zu kämpfen, um die Grundlagen verstehen hier, Nein, Sie würde nicht zu Bearbeiten .inc-Datei. Die bit-code-Bearbeiten Sie den code, wo Sie für die post und die Daten einfügen, zum Beispiel:
<!--#include file="database.asp"-->
benötige ich um diese Datei zu Bearbeiten...oder die select-Anweisung, welche ich bereits in meiner Frage...??Error Type: Microsoft VBScript runtime (0x800A01FA) Class not defined: 'FreeASPUpload'
freeASPUpload.asp
- Datei und include in dein Skript:<!--#include file="freeASPUpload.asp"-->