webForumDet fria alternativet
Logga in / Bli medlem

Tempbild/mapp

ASP

10 svar · 685 visningar · startad av Travoni

Medlem sedan okt. 20041 556 inlägg
Frågan#1

Jag använder AspSmartUpload och AspSmartImage för att ladda upp bilder, men jag skulle behöva ett system för att ladda upp bilder i en temp-mapp/temp-namn tills jag är nöjd med bilden. När jag är det så vill jag spara ned den med ett speciellt namn och att temp-mappen raderas.
Men problemet är att om någon annan laddar upp bilder samtidigt och temp-mappen töms så försvinner ju även den personens temp-bilder.

Tips emottages varmt.

Medlem sedan dec. 2002299 inlägg
#2

Nej, du laddar först upp den i en temp mapp, och varför ska du ta bort temp mappen, du behöver jo bara ta bort den filen som du har som temp fil.
Ladda upp i temp mappen,
Hämta den med AspSmartImage,
Spara den till den riktiga filen,
Ta bort temp filen

Medlem sedan okt. 20041 556 inlägg
#3

Ok, men hur skall jag döpa tempbilden då?
Så att det blir unik lixom.

Medlem sedan dec. 2002299 inlägg
#4

Här har du en slump funktion som gör så att du får unika namn på varje bild.

function strRandom(antal)
	random="A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,Y,V,W,Z," & _
				 "a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,y,v,w,z," & _
				 "1,2,3,4,5,6,7,8,9,0," & _
				 "_,-"
	arrRandomThis=split(random,",")
	Randomize Timer
	for i=1 to int(antal)
		Randomize Timer
		intStart=int(Rnd*((ubound(arrRandomThis)-1)/10)*10) + 1
		makeStr=makeStr & arrRandomThis(intStart)
	next
	strRandom=makeStr
end function

strFil = file.FileName
strNow=strRandom(5)
filNamn=strNow & "_" & lcase(strFil)	
file.SaveAs("/bildarkiv/"&filNamn)
Medlem sedan okt. 2004159 inlägg
#5

Kan man inte använda sig av SessionID på något vis? Den är ju unik men det är möjligt att det blir för lång sträng om man inte trunkerar den, men då försvinner ju det unika.

Medlem sedan jan. 20023 327 inlägg
#6

Datum + klockslag i formatet YYMMDD_HHMMSS kanske?
Exempelvis: 20060906_164622.jpg

Medlem sedan okt. 20041 556 inlägg
#7

Visst, sessionid går ju bra att använda.
Men låt säga att tempbilden döps till 312734293.jpg med sessionsid:t sedan så surfar personen bort ifrån webbplatsen, då vill ju jag ta bort bilden/erna som inte sparats till "riktiga bildnamn".

Och det är här kruxet kommer in.
Datum/Klockslag går ju också att använda men det är ju inte heller 100%, två bilder kan ju få samma namn under unika förhållanden.

Medlem sedan juni 200032 967 inlägg
#8

Session_OnEnd i global.asa?
Spara i tempmappar och ta bort alla bilder äldre än x?

Medlem sedan okt. 20041 556 inlägg
#9

Har hört att Session_OnEnd suger. Att den körs lite när den vill.
Det får bli tempmappar helt enkelt.

Medlem sedan juni 200032 967 inlägg
#10

Ja, det är väldigt olika hur ofta / hur bra Session_onEnd fungerar. Jag hade också valt alternativ två i mitt inlägg.

mvh

Medlem sedan okt. 20041 556 inlägg
#11
Sub delete_oldies(folder)
    Dim fso, fldr
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fldr = fso.getFolder(server.MapPath(folder))

    For each file in fldr.files
	    If dateDiff("h",file.dateLastModified, Now) > 12 then fso.DeleteFile File, True
    Next

    Set fldr = Nothing
    Set fso = Nothing
End Sub

delete_oldies "/temp_imgs"
480 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
215 ms — deklarationer (db)
126 ms — hämta statistik (db)
135 ms — hämta tråd, inlägg och bilagor (db)
215 ms — ändringar (db)