webForumDet fria alternativet

Problem ! (multipart/form-data skriva till databas)

5 svar · 342 visningar · startad av El M@cho

El M@choMedlem sedan mars 20015 inlägg
#1

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

------------------
El Macho

El M@choMedlem sedan mars 20015 inlägg
#2

Ursäkta!

Det ska inte stå action="add.asp"

utan

enctype="multipart/form-data"

där jag beskriver när problemet uppstår!!!

------------------
El Macho

emissionMedlem sedan dec. 19996 721 inlägg
#3

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.

El M@choMedlem sedan mars 20015 inlägg
#4

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>

------------------
El Macho

emissionMedlem sedan dec. 19996 721 inlägg
#5

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.

El M@choMedlem sedan mars 20015 inlägg
#6

Tack så mycket !
Jag ska se om det hjälper.

------------------
El Macho

135 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)