Avatar billede bootlab Nybegynder
05. marts 2003 - 22:21 Der er 3 kommentarer og
2 løsninger

Random file name

Hey :)

Jeg sidder og leger med at oprette filer via ASP...
Jeg ved nu hvordan man opretter filer på serveren og hvordan man oploader filer til en server via browser..

Nu sidder jeg så og slås med et problem:
Jeg vil gerne ha' styr på at ændre filnavnet til et tal som den feks finder fra en database..eller evt. hvordan
man mest hensigtsmæssigt sørger for ikke at overskriver
en fil som hedder det samme som den man er ved at oprette/oploade..

Anybody? :)
Avatar billede jespernaur Nybegynder
05. marts 2003 - 22:25 #1
Et rimeligt skudsikkert princip er at bruge klokkeslettet - hvis du tager millisekunder med er du ret sikker på, at det bliver unikt. Navnet bliver dog besværligt at genkende bagefter.
Avatar billede hossein Nybegynder
05. marts 2003 - 22:27 #2
Sådan, her har jeg valgt html sider
Option Explicit

Response.Expires = 1

DIM fileSystem, folderName, folder, fileList, file, dataFile, fileName
DIM htmlList(100), lowerBound, upperBound, count, pick, nextLine

lowerbound=0

folderName = Server.MapPath(".")&"\startup"
Set fileSystem = CreateObject("Scripting.FileSystemObject")
Set folder = fileSystem.GetFolder(folderName)

Set fileList = folder.Files

for each file in fileList
if (right(file.Name, 4) = "html" OR right(file.Name, 4) = "HTML") THEN
htmlList(count) = file.Name
count=count+1
end if
next

upperBound = count-1

Randomize()
pick = Int((upperbound - lowerbound + 1) * Rnd + lowerbound)

fileName = Server.MapPath(".")&"\startup\"+htmlList(pick)

Set dataFile = fileSystem.OpenTextFile(fileName, 1, FALSE, FALSE)
while dataFile.AtEndOfStream <> True
nextLine=dataFile.ReadLine
Response.write(nextLine)
wend
dataFile.Close

Set dataFile = Nothing
Set fileList = Nothing
Set folder = Nothing
Set fileSystem = Nothing
Avatar billede eagleeye Praktikant
05. marts 2003 - 22:28 #3
Eks hvor jeg uplaoder en fil og giver den filnavet/tallet som svare til det ID i databasen til høre til:


Set Upload = Server.CreateObject("Persits.Upload.1")
Upload.SaveToMemory    'Save to memory

Set rs = Server.CreateObject("ADODB.Recordset")
strSQL = "SELECT * FROM tabel"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../../log/database.mdb")
rs.Open strSQL, strDSN, 1, 3

strTitel = Upload.Form("Titel")
strTekst = Upload.Form("Tekst")

rs.AddNew
rs("Titel") = strTitel
rs("Tekst") = Replace(strTekst, vbCrLf, "<br>")
rs.Update
id = rs("id")

Set file = Upload.Files("FILE1")
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
file.SaveAs Server.MapPath("/images/" & id & "." & FSO.GetExtensionName(file.ExtractFileName))


Så du kan give fin fil navnet som svare til det ID i databasen den tilhøre.
Avatar billede bootlab Nybegynder
06. marts 2003 - 00:34 #4
Tak for deltagelsen og den hurtige respons
Jeg vil gerne dele pointene imellem hossein og eagleeye
Da I begge har givet mig eksempler som jeg har kunne bruge til noget..

Så hvis lige hossein vil lægge et svar :) så kan vi få det overstået.

/boot
Avatar billede hossein Nybegynder
06. marts 2003 - 09:55 #5
selv tak!
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