webForumDet fria alternativet

Ta bort fil med UNLINK()

PHPur PHP

13 svar · 536 visningar · startad av lillebror

Medlem sedan apr. 20041 597 inlägg
Frågan#1

Hej! Jag undrar om någon kan berätta hur jag med unlink-funktionen tar bort en fil från en viss katalog på mitt webbhotell?

Har försökt med olika varianter som denna men det fungerar inte. Har provat att ändra chmod också.

$file = $_SERVER['DOCUMENT_ROOT']."/tabort/".$file;

unlink($file);
Medlem sedan aug. 20002 975 inlägg
#2

Vad får du för felmeddelande ?

Medlem sedan apr. 20041 597 inlägg
#3

Detta får jag:

Warning: unlink(/xxx/tabort/) [function.unlink]: Permission denied in /xxx/deletepicture.php.php on line 26

Har försökt att ändra permission dels på mappen den ligger i samt på själva filen till chmod 777. Dock verkar inte detta vara problemet.

Medlem sedan juli 20023 617 inlägg
#4

Har du kontrollerat innehållet i $file?

Medlem sedan aug. 20002 975 inlägg
#5

Har du sökvägen rätt från diskroten så betyder det att du misslyckats med att ändra chmod.

Medlem sedan apr. 20041 597 inlägg
#6

Vad ska jag ha för chmod för att en användare skall kunna läsa/exekvera/ta bort en fil med deletepicture.php?

R: Jag har ju satt både mappen "Ta bort" och filen "bild.jpg" till chmod 777. Med den satt...kan en användare inte göra vad som helst med dessa objekt?

Medlem sedan juli 20023 617 inlägg
#7
Warning: unlink(/xxx/tabort/)

Det ser ut som om du pekar unlink på en mapp. Prova att skriva ut strängen för att se att sökvägen är ok.

Medlem sedan apr. 20041 597 inlägg
#8

Jag har mixtrat och laborerat utan något större resultat. Har skrivit ut sökvägen och den ser okej ut den också.

Så här är min kod nu:

$file = $_SERVER['DOCUMENT_ROOT']."/tabort/"."test.jpg";
echo "Sökväg: ".$file;
unlink($file);

Filen test.jpg är en riktigt fil som jag pekar på för att se om det fungerar. Sedan är meningen att det skickas med ett ID från en query som skall ta bort bilden.

Medlem sedan jan. 20021 122 inlägg
#9

Kolla med file_exists om den verkligen pekar rätt. Gör den det så har du inte satt rättigheterna rätt. Om du chmod:ar mappen tabort till 777 ska det definitivt fungera.

Medlem sedan apr. 20041 597 inlägg
#10

pettsson skrev:

Kolla med file_exists om den verkligen pekar rätt. Gör den det så har du inte satt rättigheterna rätt. Om du chmod:ar mappen tabort till 777 ska det definitivt fungera.

Tack för tipset. Ska testa file_exists.

Vilken är den lämpligaste chmod att sätta på filer som använderare själv laddar upp och ska kunna ta bort? 777 ger ju samtliga behörigheter vilket kanske inte är nödvändigt. Nu satte jag det till det eftersom jag ville vara på den säkra sidan.

Medlem sedan aug. 20002 975 inlägg
#11

Har du CHMOD 777 på katalogen och laddar upp filer i den, ska du utan problem kunna ta bort filer med unlink().

Medlem sedan apr. 20041 597 inlägg
#12

Fick det helt plötsligt att fungera! :) Om jag vill ha en något mer restrektiv chmod, vad är lämpligt att välja då?

Medlem sedan aug. 20002 975 inlägg
#13

Jag tror inte du kommer undan 777.

Därför bör du inte lägga PHP-filer i sådana kataloger.

Medlem sedan apr. 20041 597 inlägg
#14

Matte skrev:

Jag tror inte du kommer undan 777.

Därför bör du inte lägga PHP-filer i sådana kataloger.

Ok...det har jag inte gjort så då borde jag vara "safe".

131 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)