Kom ihåg mig?
Home Menu

Menu


Ladda upp filer?

 
Ämnesverktyg Visningsalternativ
Oläst 2004-07-06, 18:25 #1
Frejs avatar
Frej Frej är inte uppkopplad
Flitig postare
 
Reg.datum: Jul 2004
Inlägg: 463
Frej Frej är inte uppkopplad
Flitig postare
Frejs avatar
 
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
Frej är inte uppkopplad   Svara med citatSvara med citat
 


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 01:29.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017