webForumDet fria alternativet

Visa bild temporärt?

.NET

4 svar · 638 visningar · startad av inspiro

Medlem sedan sep. 2005673 inlägg
Frågan#1

Jag skulle vilja förhandsgranska en bild innan användaren godkänner och skickar upp den, hur hanterar man det på bästa sätt? Skulle helst vilja slippa spara bilden på hårddisken i det här steget utan om det är möjligt bara strömma bilden tillbaka till användaren... går det?

Medlem sedan dec. 19996 721 inlägg
#2

"Förhandsgranska innan användaren skickar upp" + "strömma tillbaka" = går väl inte särskilt bra ihop?

Medlem sedan sep. 2005673 inlägg
#3

Haha, näe... :) Alltså så här menar jag. Innan jag sparar ned bilden så ska bilden göras mindre och sedan tänkte jag ha en sida där man kan förhandsgranska bilden innan man postar den. Självklart måste bilden skickas upp redan här men jag tänkte att det kanske skulle vara fiffigt om man inte behövde spara ned bilden på hårddisken innan den godkänts så att säga. Eller man kanske ska spara den direkt ändå och sedan om man inte godkänner bilden så plockar man bort den igen? Kan ju vara stora bilder så jag tänkte på prestanda och så, hur brukar man göra?

Medlem sedan maj 20012 812 inlägg
#4

Om du inte vill spara den till disk innan den har blivit godkänd, så hade jag gjort följande.

1. Ladda upp filen.
2. Lägg den i en temporär cache (typ sessionen)
3. Gör en thumbnail av bilden och streama tillbaka till klienten.
4. Om användaren nu godkänner bilden, så tar du bilden från din cache och spara ner till disk.
5. Om användaren nu stänger webläsaren utan att göra något så måste du se till så bilden försvinner från cachen. Om det är session så försvinner den när sessionen dör. Om du har använt cachen så bör du ha satt en tisgräns hur länge bilden får sparas i cahcen och så kommer den plockas bort när den tiden är nådd.

Du kommer ju ta internminne på burken för att spara bildern, så om du har många och stora bilder så kan det ju ta onödiga serverresurser...

Så rent prestandamässigt så är det bättre att spara ner bilden till ett temporärt bibliotek och om bilden sedan godkänns så flyttar du bilden från det temporära biblioteket till rätt bibliotek. Om du dessutom gör nytt temporärt bibliotek för varje dag, så kan du skriva ett script som plockar bort gårdagens temporära bibliotek och du behöver inte vara orolig för att där ligger en massa gammla bilder och skräpar...

Problemet med att plocka bort bilden om man inte godkänner den, är att du inte kan garantera att användaren verkligen kommer att godkänna/icke godkänna bilden. Man kan ju bara stänga ner sin webbläsare och du har du en bild som "hänger i luften" och kommer alltid ligga kvar där du sparade den (om du inte löser det med mitt förslag ovan).

- M

Medlem sedan sep. 2005673 inlägg
#5

Tack, jag sparar ned den i ett temp-bibliotek istället, vet inte riktigt varför jag fick för mig att det var snabbare att cacha bilden tills den godkänts. Tack!

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)