Avatar billede agerled Nybegynder
17. februar 2004 - 22:42 Der er 12 kommentarer og
1 løsning

mange billeder i samme folder

hej.

jeg har et bibliotek hvor mange forskellige brugere skal kunne oploade billeder til. Jeg renamer alle billeder før de bliver gemt, men hvordan kan jeg sikre mig at der ikke er to billeder der for samme filnavn. Hvordan håndterer man normalt sådan noget..??
Avatar billede eagleeye Praktikant
17. februar 2004 - 22:50 #1
Hvis du bruger ASPupload komponenten kan den sættes til at give unike filnavne.
Eller kan man give dem et ramdom navn, ved bruger af en funktion som kan give X antal random karakter. Eller give dem et GUID så kommer de til at hedde sådan noget her:
{B31705EC-AF1A-4399-956B-726F1CE73828}.jpg
Avatar billede agerled Nybegynder
17. februar 2004 - 22:51 #2
har du et eksempel på hvordan aspupload kan give unikt nummer?
Avatar billede eagleeye Praktikant
17. februar 2004 - 22:55 #3
Man sætte .OverwriteFiles til false så vil ASPupload tilføje et tal til filen hvis i parantes hvis filnavnet findes i forveje. Eks: ole.jpg --> ole(1).jpg

Upload.OverwriteFiles = False
Avatar billede agerled Nybegynder
17. februar 2004 - 22:59 #4
det har jeg prøvet, men den overskriver stadig bare filen...?
Avatar billede eagleeye Praktikant
17. februar 2004 - 23:10 #5
hmm det skulle ellers gøre.
bruger du ikke .saveas?
Avatar billede eagleeye Praktikant
17. februar 2004 - 23:13 #6
Det skulle nu også virke med .save
Avatar billede eagleeye Praktikant
17. februar 2004 - 23:14 #7
Prøv at udskrive filnavnet efter det er gemt. Hvis du bruger et FTP program til at tjekke så husk at refreshe folderen det ikke altid nok bare at gå ind og ud af folderen.
Avatar billede agerled Nybegynder
17. februar 2004 - 23:19 #8
jo jeg bruger saveAs, men det er det samme med save.

Her er starten af min kode. noget der står forkert?

Set upload = Server.CreateObject("aspSmartUpload.SmartUpload")
  'Max størrelse i bytes
  'upload.MaxFileSize = 50000
 
  Upload.OverwriteFiles = False

 
  'Upload filerne til memory
  upload.Upload


  'brugernavn = upload.form("navn")
  For each file In upload.Files
    If not file.IsMissing Then
   
    dag = Day(Date)
    mdr = Month(Date)
    aar = Year(Date)
    ctime = Hour(Time)
    min = Minute(Time)
    sek = Second(Now)

TIDNU = aar & mdr & dag & ctime & min & sek
           
      'filnavn = "/img/img_chancer/" & brugernavn & "." & file.FileExt
    filnavn = session("userid") & "_" & file.filename
      file.SaveAs "/newsite/pics/profilepics/large/" & filnavn
Avatar billede eagleeye Praktikant
17. februar 2004 - 23:29 #9
Arh du bruger ASPsmartUpload den kan ikke det, det er ASPupload som kan det :)

Så må man lave et tjek med FSO og tjekke filen ikke findes. Men hvis du sætte dato og tid på er der da meget lille sansynlighed for to kommer til at hedde det samme?
Avatar billede agerled Nybegynder
17. februar 2004 - 23:31 #10
ja. dato og tid er det jeg gør nu. skulle bare lige undersøge om der var en bedre måde. læg du bare et svar (igen igen :-))
Avatar billede eagleeye Praktikant
17. februar 2004 - 23:34 #11
Men man kan lave en funtion som kan give et random tekst:
<%
function lavPassword(antal)
  tilladtkarakter = "abcdefghijklmnopqrstuvwxyz1234567890"
  str = ""
  randomize
  for i = 1 to antal
    index = Int(rnd * len(tilladtkarakter))+1
    str = str & Mid(tilladtkarakter,index,1)
  next
  lavPassword = str
end function
%>


Så kan man bruge den til at få et random navn:
Set fs=Server.CreateObject("Scripting.FileSystemObject")
..
..
for each file in upload.files
 
  filnavn = "/newsite/pics/profilepics/large/" & lavpassword(15) & "." & file.FileExt
  do while fs.FileExists(Server.Mappath(filnavn))
    filnavn = "/newsite/pics/profilepics/large/" & lavpassword(15) & "." & file.FileExt
  loop
  file.SaveAs  filnavn
..
Avatar billede eagleeye Praktikant
17. februar 2004 - 23:35 #12
Eller hvis du ikke vil blande Filesystemobject ind i det. Så kan du bruge
filnavn = TIDNU & lavpassword(5)

Så er der ikke to som får samme navn.
Avatar billede agerled Nybegynder
18. februar 2004 - 00:28 #13
takker..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester