Just nu i M3-nätverket
Jump to content

Hantera bilder vid uppladning


LÄGET

Recommended Posts

 

Behöver lite hjälp med att hantera bilder. Jag vill att mina medlemar ska kunna ladda upp 4 bilder. Vill även att dessa bilder ska få olika namn typ 145362.jpg. Men jag lyckas inte.

 

Jag laddar upp bilderna och de sparas med liknande namn som tidigare. Därefter så spara jag det namnet i sammadatbas där användarens uppgifter är sparade.

 

Finns det inte nån bättre förslag

 

 

 

Ja men syftet är ju o tilldela den kanske nån id-nummer som blocket.se gör. Enklare o söka upp den vid senare tillfälle!

 

Sen så undrar jag hur hanterar jag om nån medlem ångrar o lägga upp bilderna men har redan lagrat 2 styckna bilder... hur gör jag så att dess försvinner?

 

Link to comment
Share on other sites

Bygg upp namnet med hjälp av användarens id och ett löpnummer, ex. IMG123_1.gif, IMG123_2.gif osv. för användaren med id=123

 

Raderar filer gör du med FileSystemObject

 

Link to comment
Share on other sites

Här har du två exempelfunktioner du kan använda dig av

 

http://ceaaec9f24353587.paste.se/

 

EDIT: Blev lite konstigt där, citattecknen försvann. Klistrar in koden direkt här istället.

 

[color="#0000ff"]Sub[/color] DeleteFile(sVirtualPath)
  [color="#0000ff"]On Error Resume[/color] [color="#0000ff"]Next[/color]
  [color="#0000ff"]Set[/color] fs=[b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"Scripting.FileSystemObject"[/GRÅ])
  fs.DeleteFile([b]Server[/b].MapPath(sVirtualPath))
  [color="#0000ff"]Set[/color] fs=[color="#0000ff"]Nothing[/color]
[color="#0000ff"]End[/color] [color="#0000ff"]Sub[/color]

[color="#0000ff"]Function[/color] CreateNewFileName(sVirtualPath,nUserId)
  [color="#0000ff"]Set[/color] fs=[b]Server[/b].[color="#0000ff"]CreateObject[/color]([GRÅ]"Scripting.FileSystemObject"[/GRÅ])
  sTmp=[b]Server[/b].MapPath(sVirtualPath) & [GRÅ]"\IMG"[/GRÅ] & nUserId & [GRÅ]"_"[/GRÅ]
  n=1
  [color="#0000ff"]Do[/color] [color="#0000ff"]While[/color] fs.FileExists(sTmp & n & [GRÅ]".gif"[/GRÅ])
    n=n+1
  [color="#0000ff"]Loop[/color]
  [color="#0000ff"]Set[/color] fs=[color="#0000ff"]Nothing[/color]
  CreateNewFileName=sTmp & n & [GRÅ]".gif"[/GRÅ]
[color="#0000ff"]End[/color] [color="#0000ff"]Function[/color]

[inlägget ändrat 2006-09-23 23:31:45 av Anjuna Moon]

Link to comment
Share on other sites

Tack för koden.. Så det ska helt enkelt fungera om nån som lägger upp bilder o ångrar sig o skicka data. Men har redan skickat upp bilderna.

 

Istället för att dem ska ligga o skräppa i serven så försivnner dem om personen stänger av internet explorer eller går till nån annan sidan?

 

Sen det där med att ange Idnummret? Bilden ska ju läggas samtidigt då du blir medlem.. lite svårt o veta id.nummret då?

 

 

Link to comment
Share on other sites

Så det ska helt enkelt fungera om nån som lägger upp bilder o ångrar sig o skicka data. Men har redan skickat upp bilderna.

Nä, du får väl ha en "Radera bilder"-länk på användarens sida som då anropar ett asp-script som raderar filerna. Här får du då skicka med användarens id i sidanropet och sedan bygga upp sökvägen till dennes bilder och sedan anropa min delete-sub

 

Typ:

uid=[b]Request[/b].querystring([GRÅ]"uid"[/GRÅ])
sFiles=[GRÅ]"/img/USR"[/GRÅ] & uid & [GRÅ]"_*.*"[/GRÅ]
DeleteFile sFiles 

 

Sen det där med att ange Idnummret? Bilden ska ju läggas samtidigt då du blir medlem.. lite svårt o veta id.nummret då?

Jo, då får du först spara användaren i databasen och samtidigt hämta tillbaka det nya id:t. Beroende på vilken databas du använder finns det olika sätt att göra det på. Ett generellt sätt är följande:

 

[color="#0000ff"]Set[/color] rs=oConn.[color="#0000ff"]Execute[/color]([GRÅ]"insert into user (yada,yada2,yada3) values (1,2,3); select @@identity as newId"[/GRÅ]
[color="#0000ff"]If[/color] [color="#0000ff"]Not[/color] rs.eof [color="#0000ff"]Then[/color] newid=rs([GRÅ]"newId"[/GRÅ])

 

Nu har du det nya id:t och kan gå över till steget att spara de medskickade filerna.

 

EDIT: Tog bort parenteser i sub-anropet.

[inlägget ändrat 2006-09-24 00:01:26 av Anjuna Moon]

Link to comment
Share on other sites

hmm Hur gör blocket.se, när man ska registrera en annons.

Man kan ladda upp bilderna innan man har sparat en annons.

Sparar dem bidlerna i minnet först?

 

jag vill göra något liknande.

 

Link to comment
Share on other sites

Ingen aning hur blocket gör. Möjligtvis använder de sig av sessionsid:t som temporär delsträng i filnamnet och sedan rensar de med jämna mellanrum dessa temp-filer som ligger och skräpar för att ingen har fortsatt till annonssparandet.

 

Alltså:

- Hämta sessionsid: TempId=Session.SessionId

- Spara filerna med temporära namn, ex. som TMPxxxxxxxxxx_1.gif, TMPxxxxxxxx_2.gif där xxxxxxxxx är sessionsId:t.

- Vid registreringen döper du om filerna till de rätta namnen (enligt det jag beskrivit tidigare.

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...