webForumDet fria alternativet

Filstorlek med FSO

ASP

6 svar · 341 visningar · startad av Melea

Medlem sedan juli 20033 147 inlägg
Frågan#1

Hejsan!

Jag får inte riktigt koll på min kod när jag ska skriva in filstorleken i databasen..

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("/Creative/files/" & Session("username") & "/" & filename))

[b]Function getFileSize(MyFile)
Set fil = ScriptObject.GetFile(Server.MapPath(MyFile))
storlek = fil.size
getFileSize = storlek / 1024
Set fil = Nothing
Set fso = Nothing
End Function

storlek = getFileSize("/Creative/files/" & Session("username") & "/" & filename)[/b]

For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next

	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "Driver={MySQL ODBC 3.51 Driver};server="&strserver&";uid="&struser&";pwd="&strpass&";database="&strdb&"" 

	sql = "insert into files (filename, username, datum, [b]storlek[/b]) values ('" & filename & "', '" & username & "','" & datum & "',[b]'" & storlek & "'[/b])"
	Connect.Execute(sql),,128

	Connect.Close : Set objConnect = Nothing

MyFile.Close

MVH

Medlem sedan mars 20015 287 inlägg
#2

Vad är eg. problemet?

Det ser ut som om du sparar som text, är det rätt?

Annars skulle jag kunna tänka mig att du försöker kolla storleken på filen innan den finns på servern, kanske att du ska flytta ner anropet av funktionen till efter att filen är skriven till disk.

Medlem sedan juli 20033 147 inlägg
#3

Jo men jag måste ju visa vad '" & storlek & "' är, annars blir ju fältet i databasen tomt?

Medlem sedan mars 20015 287 inlägg
#4

Hm.. det där förstår jag inte. Vadå vad storlek är?

Medlem sedan juli 20033 147 inlägg
#5

Ah flyttade ner koden som du sa så den hamnade under

For i = 1 to LenB(value)
MyFile.Write chr(AscB(MidB(value,i,1)))
Next

Men det blir 12 decimaler på storleken, hur ändrar jag detta?

Medlem sedan mars 20015 287 inlägg
#6

Round(tal,2) ger dig två decimaler, ändra siffran för annat antal.

Function getFileSize(MyFile)
Set fil = ScriptObject.GetFile(Server.MapPath(MyFile))
storlek = fil.size
getFileSize = round((storlek / 1024),2)
Set fil = Nothing
End Function

PS. strök Set fso = Nothing ur din funktion, du använder vä inget som heter fso va?

Medlem sedan juli 20033 147 inlägg
#7

Na du har rätt (som vanligt :OO)

Tackar för hjälpen än en gång ;)

256 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)