FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Flitig postare
|
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 |
|||
![]() |
![]() |
|
|