Fejlen kommer i disse linjer ikke? set x_smiley = CreateObject ("Scripting.FileSystemObject") set x_smiley = filesys.CreateTextFile ("../smiles/" & x_smiley & "", true) set x_smiley = filesys.GetFile("../smiles/" & x_smiley & "") x_smiley.Delete
umiddelbart har du ikke et object som hedder filesys det skulle nok være den første af linjerne der skulle stå filesys hvor du opretter Filesystem objektet. Så rpvø at skrive det som:
set filesys = CreateObject ("Scripting.FileSystemObject") set x_smiley = filesys.CreateTextFile ("../smiles/" & x_smiley & "", true) set x_smiley = filesys.GetFile("../smiles/" & x_smiley & "") x_smiley.Delete
Det måske muligt du bliver nød til at bruger server.mappath omkring sti og filnanvet hvis FSO createFile og GetFile ikke acceptere relativ sti angivelse.
set x_smiley = filesys.CreateTextFile (Server.Mappath("../smiles/" & x_smiley & ""), true) set x_smiley = filesys.GetFile(Server.Mappath("../smiles/" & x_smiley & ""))
For at slette en fil skal du/browseren Internet Guest Account (IUSR_xxxx) havde rettighed til at slette fra foldren. Jeg mener det er den property som hedder "modify"
Hvis filen er read-only kan den fejl også komme, read-only kan løses ved at sætte true på delete linjen:
ok, jeg ved ikke helt hvordan rettighedere styres på en unix men det lyder rigtigt med CHMOD=777. Men windows mener jeg kun det er FTP programmet rettigheder man ændre og ikke browserens, det skal sættes op af webhotellet hvis man bruger en anden mappe end den de har sat op til en.
Hmm... På min lokale computer kommer den os med fejlen: Fejltype: Der opstod en Microsoft VBScript-kørselsfejl (0x800A0046) Tilladelse nægtet /Nyhedsscript/admin/delete_smiley.asp, line 32
Det var til din lokale compunter. En Browseren er i windows IUSR_<maskinnavn> brugeren og den skal havde rettighed til at skrive og rette i folderen for man kan arbejde med filerne.
Nu fandt jeg et par fejl i koden så den stykke af koden hvor den connecter til databasen igen ser sådan ud: Case "D": set conn = Server.CreateObject("ADODB.Connection") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.mappath("../db/db.mdb") strsql = "SELECT * FROM [smilies] WHERE [Id]=" & x_id set rs = Server.CreateObject("ADODB.Recordset") rs.Open strsql, conn x_smiley = rs("smiley") strsql = "DELETE FROM [smilies] WHERE [Id]=" & x_id set rs = conn.Execute(strsql) conn.Close Set conn = Nothing response.write(Server.Mappath("../smiles/" & x_smiley & "")) set filesys = CreateObject ("Scripting.FileSystemObject") set x_smiley = filesys.GetFile(Server.Mappath("../smiles/" & x_smiley & "")) x_smiley.Delete Response.Redirect "smiley.asp" End Select
Nu når man trykker på udfør sender den en videre til smiley.asp uden problemer og den sletter den fra databasen, men billede filer vil bare ikke slettes hvofor???
Synes godt om
Ny brugerNybegynder
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.