Ursäkta!
Det ska inte stå action="add.asp"
utan
enctype="multipart/form-data"
där jag beskriver när problemet uppstår!!!
5 svar · 342 visningar · startad av El M@cho
Har följande problem:
Försöker skapa en uppladdnings funktion där man via ett formulär ska skicka uppgifter till en databas (namn, adress mm) samtidigt som man ska kunna ladda upp en bild.
Var för sig är det inga problem - databasen uppdateras med textuppgifterna jag önskar
(<form method="post" action="add.asp"> ) och när jag använder scripet för bild uppladdning fungerar det
(<form name="UploadForm" action="add.asp" enctype="multipart/form-data" method="post"> ).
Men när jag kombinerar detta med (action="add.asp") uppstår problem - uppgifterna i databasen uppdateras ej!
H J Ä L P
Ursäkta!
Det ska inte stå action="add.asp"
utan
enctype="multipart/form-data"
där jag beskriver när problemet uppstår!!!
Tänk på att du inte kan använda request.form när du laddar upp filer. Du måste använda uppladdningsobjektets motsvarighet. Visa gärna lite kod.
Tack för ditt snabba inlägg.
Här kommer "lite kod" från add.asp:
<!-- #include virtual="adovbs.inc" -->
<%
Dim MyPath
MyPath = Server.MapPath("db1.mdb")
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open ("driver={Microsoft Access Driver (*.mdb)};dbq=" & MyPath)
Set RecSet = Server.CreateObject("ADODB.Recordset")
Addera = "SELECT * FROM personal"
RecSet.Open Addera, Connect, adOpenStatic, adLockOptimistic
RecSet.AddNew
RecSet("namn") = Request.Form("namn")
RecSet("epost") = Request.Form("epost")
RecSet("bild1") = Request.Form("bild1")
RecSet.Update
RecSet.Close
Connect.Close
%>
<%
' Author Philippe Collignon
' Email PhCollignon@email.com
Response.Expires=0
Response.Buffer = TRUE
Response.Clear
'Response.BinaryWrite(Request.BinaryRead(Request.TotalBytes))
byteCount = Request.TotalBytes
'Response.BinaryWrite(Request.BinaryRead(varByteCount))
RequestBin = Request.BinaryRead(byteCount)
Dim UploadRequest
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin
'email = UploadRequest.Item("email").Item("Value")
contentType = UploadRequest.Item("bild1").Item("ContentType")
filepathname = UploadRequest.Item("bild1").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("bild1").Item("Value")
'Create FileSytemObject Component
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
'Create and Write to a File
pathEnd = Len(Server.mappath(Request.ServerVariables("PATH_INFO")))-14
' Set MyFile = ScriptObject.CreateTextFile(Left(Server.mappath(Request.ServerVariables("PATH_INFO")),pathEnd)&filename)
Set MyFile = ScriptObject.CreateTextFile(Server.mappath("/image/"&filename))
response.write(Server.mappath(filename))
For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close
%>
<!--#include virtual="/show.asp"-->
</body>
</html>
Det verkar inte vara all kod, eller saknas en include?
I vilket fall som helst så ska du byta ut alla request.form("blablabla") till UploadRequest.Item("blablabla").Item("Value")
Kör uppladdningsdelen i skriptet före den andra delen, så att UploadRequest hinner skapas.
Tack så mycket !
Jag ska se om det hjälper.