26. november 2004 - 18:53Der er
3 kommentarer og 1 løsning
Bestemt fil må kun forekomme én gang!
Hej!
Jeg har et script som kører igennem en masse bibloteker og så gemmer alle filer som ligger i dem! Problemet er dog at hvis man oploader et nyt biblotek og kører filen igen, skriver den 2x de filer som den allerede har inde i databasen.
Hvordan kan jeg gøre det sådan at filerne ikke bliver gemt 2 gange???
min tabel som jeg gemmer til er her:
tabel: singlepictures billede navn: pic
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open MM_festbilleder_STRING
Set fso = CreateObject("Scripting.FileSystemObject")
function lookinfolder (foldernavn) Set objFolder = fso.getFolder( foldernavn ) 'Response.Write objFolder.path & "<br>"
call saveFiles (objFolder.Path)
For each Folder in objFolder.SubFolders call lookinfolder (Folder.path) next
Set objFolder = Nothing end function
function saveFiles (foldernavn) Set objFolder = fso.getFolder( foldernavn ) Set objFiles = objFolder.Files catID = "" for each file in objFiles if InStr(1,"gif,jpg,jpeg,bmp", LCase(fso.GetExtensionName(file.name))) > 0 then if catID = "" then catID = findCatID(objFolder.name)
end if next Set objFolder = Nothing Set objFiles = Nothing end function
function findCatID (foldernavn) Set rs = Server.CreateObject("ADODB.RecordSet") SQL = "SELECT ID, category FROM categories WHERE category = '" & foldernavn & "'" rs.Open SQL, Conn, 1, 3 if rs.EOF then rs.AddNew rs("category") = foldernavn rs.Update findCatID = rs("id") else findCatID = rs("id") end if rs.Close end function
sti = "." strPhysicalPath = Server.MapPath(sti)
lookinfolder (strPhysicalPath)
Response.Write "All files has been stored"
Conn.Close Set Conn = Nothing Set fso = Nothing %>
<% Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open MM_festbilleder_STRING set rs = server.createObject("adodb.recordset")
Set fso = CreateObject("Scripting.FileSystemObject")
function checkFile(file, folderpath) sql = "SELECT * from singlepictures where pic = '" & folderdpath & "/" & file & "'" rs.open sql, MM_festbilleder_STRING if rs.eof then rs.close checkFile = false else rs.close checkFile = true end if end function
function lookinfolder (foldernavn) Set objFolder = fso.getFolder( foldernavn ) 'Response.Write objFolder.path & "<br>"
call saveFiles (objFolder.Path)
For each Folder in objFolder.SubFolders call lookinfolder (Folder.path) next
Set objFolder = Nothing end function
function saveFiles (foldernavn) Set objFolder = fso.getFolder( foldernavn ) Set objFiles = objFolder.Files catID = "" for each file in objFiles if InStr(1,"gif,jpg,jpeg,bmp", LCase(fso.GetExtensionName(file.name))) > 0 then if catID = "" then catID = findCatID(objFolder.name)
end if next Set objFolder = Nothing Set objFiles = Nothing end function
function findCatID (foldernavn) Set rs = Server.CreateObject("ADODB.RecordSet") SQL = "SELECT ID, category FROM categories WHERE category = '" & foldernavn & "'" rs.Open SQL, Conn, 1, 3 if rs.EOF then rs.AddNew rs("category") = foldernavn rs.Update findCatID = rs("id") else findCatID = rs("id") end if rs.Close end function
sti = "." strPhysicalPath = Server.MapPath(sti)
lookinfolder (strPhysicalPath)
Response.Write "All files has been stored"
Conn.Close Set Conn = Nothing Set fso = Nothing %>
Jeg vil tro noget i den her stil kan klare det for dig... Men prøv ad, og så skriv hvis den kommer med fejl..
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.