06. marts 2010 - 11:58
Der er
4 kommentarer
problem med upload via asp i forbindelse med andet form data
Hej
jeg er ved at lave et stykke kode hvor man indtaster nogle data og vælger en fil, når man trykker ok skal filen oploades og data lægges i en data base, mit problem er at det upload script jeg har virker med enctype='multipart/form-data' i form feltet, og når jeg har det med kan jeg ikke læse de andre dataer ud af de andre imput felter. hvad er løsniningen på dette??
hvordan kan jeg request.form("feltnavn") samtidig med at jeg sender min fil til upload?? - eller skal jeg bruge et andet srcipt til at uploade med?
06. marts 2010 - 12:24
#2
Ok, rpøver lige at sætte koden her ind så kan der være du har mulighed for lige at ændre det i den??
if request.querystring("do") = "tilfoej" then
strerror = ""
strnavnerror = ""
stradresseerror = ""
strpostnrerror = ""
strbyerror = ""
strtlferror = ""
strrapporterror = ""
stremailerror = ""
strnavn = Trim(Request.Form("navn"))
stradresse = Trim(Request.Form("adresse"))
strpostnr = Trim(Request.Form("postnr"))
strby = Trim(Request.Form("by"))
strtlf = Trim(Request.Form("tlf"))
stremail = Trim(Request.Form("email"))
strrapport = Trim(Request.Form("rapport"))
If Len(strnavn) = 0 Then
strnavnError = "<font color='ff0000'>Du skal skrive et navn!</font>"
strerror = strerror & "1"
end if
If Len(stradresse) = 0 Then
stradresseError = "Du skal skrive en adresse!"
strerror = strerror & "1"
end if
If Len(strpostnr) = 0 Then
strpostnrError = "Du skal skrive et postnr.!"
strerror = strerror & "1"
end if
If Len(strby) = 0 Then
strbyError = "Du skal skrive en by!"
strerror = strerror & "1"
end if
If Len(strtlf) = 0 Then
strtlfError = "Du skal skrive et telefon nr.!"
strerror = strerror & "1"
end if
If Len(strrapport) = 0 Then
strrapportError = "Du skal vælge en fil!"
strerror = strerror & "1"
end if
If validateEmail(stremail) = false Then
stremailError = "Du skal skrive en valid email adresse!"
strerror = strerror & "1"
end if
If Len(strError) = 0 Then
dim intPosMIMEHeader, intPosFileDataStart
dim intPosFileNameStart, intPosFileNameEnd
dim intPosFileDataEnd, intDataSize
dim binData, binFileData, binFileName, binStart
dim strFileName
dim objFSO, objFile
intDataSize = request.totalbytes
binData = request.binaryread(intDataSize)
intPosMIMEHeader = instrB(binData,chrB(13) & chrB(10)) - 1
intPosFileDataStart = instrB(binData, chrB(13) & chrB(10) & chrB(13) & chrB(10)) + 4
intPosFileNameStart = instrB(binData,cstrB("filename=")) + 10
intPosFileNameEnd = instrB(intPosFileNameStart,binData,chrB(34))
binStart = midB(binData,1,intPosMimeHeader)
binFileName = midB(binData,intPosFileNameStart, _
intPosFileNameEnd - intPosFileNameStart)
intPosFileDataEnd = instrB(intPosMIMEHeader, binData, binStart) - 2
strFileName = bin2str(binFileName)
strFileName = right(strFileName, len(strFileName) - instrrev(strFileName,"\"))
set objFSO = server.createobject("Scripting.FileSystemObject")
set objFile = objFSO.CreatetextFile(server.mappath("uploads\" & strFileName), _
true, false)
objFile.write bin2str(midB(binData, intPosFileDataStart, _
intPosFileDataEnd - intPosFileDataStart))
objFile.close
set objFile = Nothing
set objFSO = Nothing
function bin2str(byref binS)
' omdanner en binær følge til en tekststreng
dim i, strRes
for i = 1 to lenB(binS)
strRes = strRes & chr(ascB(midB(binS, i, 1)))
next
bin2str = strRes
end function
function cstrB(strS)
' omdanner en tekststreng til en binær følge
dim i, binRes
for i = 1 to len(strS)
binRes = binRes & chrB(asc(mid(strS,i,1)))
next
cstrB = binRes
end function
kode der skriver i databasen
som du kan se det første stykke validere alle felter og vis der ikke er nogle fejl så uploader den filen, og efter det noget der skriver i databasen