Flitig postare
Reg.datum: Jul 2004
Inlägg: 463
|
Tja!
Jag har lite problem med en sak jag försöker få igång.
Jag vill kunna ladda upp filer till en webserver.
Men det krävs lite säkerhet så jag vill lägga in filerna
i en SQL 2000 Server Databas.
Sen när man laddar ner filerna så ska de skapas
från databasen och läggas i en temp mapp.
När filen är färdigtankad så tas den bort.
Men jag får det inte riktigt att fungera som jag vill.
Så här ser min nuvarande kod ut.
Jag skriver i ASP 3.0 vbScript.
Tack på förhand...
'**********************************************
'* Ladda in en fil
'**********************************************
If Request.QueryString("action") = "upload" then
Response.Expires=0
Dim UploadRequest, byteCount, RequestBin, PosBeg, i, char, PosEnd, boundary, boundaryPos, Pos, intCount
Dim Name, PosFile, value, filename, contentType, filepathname, PosBound, MyFile, ScriptObject, DBFil
byteCount = Request.TotalBytes
RequestBin = Request.BinaryRead(byteCount)
Set UploadRequest = CreateObject("Scripting.Dictionary")
BuildUploadRequest RequestBin
contentType = UploadRequest.Item("file1").Item("ContentType")
filepathname = UploadRequest.Item("file1").Item("FileName")
filename = Right(filepathname,Len(filepathname)-InstrRev(filepathname,"\"))
value = UploadRequest.Item("file1").Item("Value")
Response.Write UploadRequest.Item("file1").Item("Value")
'Lägg in skiten i databasen
Dim rsFil
Set rsFil = objConn.Execute("INSERT INTO Inv_Lic_Fil (Inv_Lic_Fil_ByteCount,Inv_Lic_Fil_ContentType,Inv _Lic_Fil_FilePath,Inv_Lic_Fil_FileName,Inv_Lic_Fil _Licens,Inv_Lic_Fil_Datum) VALUES (" & byteCount & ",'" & contentType & "','" & filepathname & "','" & filename & "','" & idLicens & "','" & Date() & "') SELECT @@IDENTITY").NextRecordSet
'Set rsFil = objConn.Execute("INSERT INTO Inv_Lic_Fil (Inv_Lic_Fil_ByteCount,Inv_Lic_Fil_FilePath,Inv_Li c_Fil_FileName,Inv_Lic_Fil_Licens,Inv_Lic_Fil_Datu m) VALUES (" & byteCount & ",'" & filepathname & "','" & filename & "','" & idLicens & "','" & Date() & "') SELECT @@IDENTITY").NextRecordSet
Response.Write "
Byte Count:" & byteCount
Response.Write "
Content Type:" & contentType
Response.Write "
File Path Name:" & filepathname
Response.Write "
File Name:" & filename
Response.Write "
Value:" & value
'Response.Redirect("inventering_licens_filer.asp?i d=" & idLicens & "&print=no")
End if
'**********************************************
'* Bygg en fil
'**********************************************
'If Request.QueryString("action") = "ladda" then
Set ScriptObject = Server.CreateObject("Scripting.FileSystemObject")
Set MyFile = ScriptObject.CreateTextFile("C:\_Websidor\_WebOffi ce\_Utveckling\_Licenser\" & filename)
For i = 1 to LenB(value)
'MyFile.Write chr(AscB(MidB(value,i,1)))
'objConn.Execute("UPDATE Inv_Lic_Fil SET Inv_Lic_Fil_Value = Inv_Lic_Fil_Value & '" & chr(AscB(MidB(value,i,1))) & "' WHERE Inv_Lic_Fil_Id = '" & rsFil(0) & "'")
Response.Write chr(AscB(MidB(value,i,1)))
Next
MyFile.Close
set myfile = nothing
'End if
'**********************************************
'* Fil functioner
'**********************************************
Sub BuildUploadRequest(RequestBin)
PosBeg = 1
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
boundary = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
boundaryPos = InstrB(1,RequestBin,boundary)
Do until (boundaryPos=InstrB(RequestBin,boundary & getByteString("--")))
Dim UploadControl
Set UploadControl = CreateObject("Scripting.Dictionary")
Pos = InstrB(BoundaryPos,RequestBin,getByteString("Conte nt-Disposition"))
Pos = InstrB(Pos,RequestBin,getByteString("name="))
PosBeg = Pos+6
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
Name = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
PosFile = InstrB(BoundaryPos,RequestBin,getByteString("filen ame="))
PosBound = InstrB(PosEnd,RequestBin,boundary)
If PosFile<>0 AND (PosFile<PosBound) Then
PosBeg = PosFile + 10
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(34)))
FileName = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "FileName", FileName
Pos = InstrB(PosEnd,RequestBin,getByteString("Content-Type:"))
PosBeg = Pos+14
PosEnd = InstrB(PosBeg,RequestBin,getByteString(chr(13)))
ContentType = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
UploadControl.Add "ContentType",ContentType
PosBeg = PosEnd+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = MidB(RequestBin,PosBeg,PosEnd-PosBeg)
Else
Pos = InstrB(Pos,RequestBin,getByteString(chr(13)))
PosBeg = Pos+4
PosEnd = InstrB(PosBeg,RequestBin,boundary)-2
Value = getString(MidB(RequestBin,PosBeg,PosEnd-PosBeg))
End If
UploadControl.Add "Value" , Value
UploadRequest.Add name, UploadControl
BoundaryPos=InstrB(BoundaryPos+LenB(boundary),Requ estBin,boundary)
Loop
End Sub
Function getByteString(StringStr)
For i = 1 to Len(StringStr)
char = Mid(StringStr,i,1)
getByteString = getByteString & chrB(AscB(char))
Next
End Function
Function getString(StringBin)
getString =""
For intCount = 1 to LenB(StringBin)
getString = getString & chr(AscB(MidB(StringBin,intCount,1)))
Next
End Function
|