hej jag försöker kopla ihop ett upload system med en databas, asså så alla filer jag laddar up sparas i databasen också...
men det funkar inte...
får detta felmedelande...
Request-objekt fel 'ASP 0207 : 80004005'
Det går inte att använda Request.Form
/asp/UploadScript2.asp, rad 16
Det går inte att använda samlingen Request.Form efter att BinaryRead har anropats.
jag kör följande kod:
<HTML>
<BODY BGCOLOR="#FFFFFF">
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Count = Upload.Save("C:\Inetpub\wwwroot\asp")
%>
<% = Count %> files uploaded.
<%
'##### Mickes stuff #####
Sub namn()
Dim str, pos, fromend
str = Trim(Request.form("upload"))
pos = inStrRev(str,"/")
fromend = len(str) - pos
str = Mid(str,fromend)
End Sub
Sub add(str)
Dim Conn
Set Conn = Server.Createobject("Adodb.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("kas/reportage/db.mdb")
Conn.Execute ("Insert into bilder(bild,rubrik) Values('" & str & "','rubrik')")
Conn.Close
Set Conn = Nothing
End Sub
Call namn()
Call add(str)
'##### Mickes stuff slutar #####
If Upload.Expires <> CDate("9/9/9999") Then Response.Write "<HR>AspUpload expires on " & Upload.Expires
%>
</BODY>
</HTML>
jag provade även med:
<HTML>
<BODY BGCOLOR="#FFFFFF">
<%
'##### Mickes stuff #####
Sub namn()
Dim str, pos, fromend
str = Trim(Request.form("upload"))
pos = inStrRev(str,"/")
fromend = len(str) - pos
str = Mid(str,fromend)
End Sub
Sub add(str)
Dim Conn
Set Conn = Server.Createobject("Adodb.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& Server.MapPath("kas/reportage/db.mdb")
Conn.Execute ("Insert into bilder(bild,rubrik) Values('" & str & "','rubrik')")
Conn.Close
Set Conn = Nothing
End Sub
Call namn()
Call add(str)
'##### Mickes stuff slutar #####
%>
<%
Set Upload = Server.CreateObject("Persits.Upload.1")
Count = Upload.Save("C:\Inetpub\wwwroot\asp")
%>
<% = Count %> files uploaded.
<%
If Upload.Expires <> CDate("9/9/9999") Then Response.Write "<HR>AspUpload expires on " & Upload.Expires
%>
</BODY>
</HTML>
men fick det här felmesset:
Körningsfel i Microsoft VBScript fel '800a0005'
En anledning till att man skriver en Sub är man vill kunna återutnyttja kod.
Som du har skrivit koden så fungerar det enbart om det finns ett fält som heter upload. (I och för sig så fungerar det inte då heller då str bara finns lokalt i sub.)
Jag skulle nog skriva den som en funktion istället
function namn(str)
Dim pos, fromend
str = Trim(str)
pos = inStrRev(str,"/")
fromend = len(str) - pos
namn = Mid(str,fromend)
End function
och sedan kan du t.ex. använda
filnamn = namn(upload.form("upload"))
------------------ essentitia preter non sans multiplicandum