webForumDet fria alternativet

Ta bort fil med UNLINK()

PHPur PHP

13 svar · 536 visningar · startad av lillebror

lillebrorMedlem sedan apr. 20041 597 inlägg
#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);
MatteMedlem sedan aug. 20002 975 inlägg
#2

Vad får du för felmeddelande ?

lillebrorMedlem 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.

fiddlerMedlem sedan juli 20023 617 inlägg
#4

Har du kontrollerat innehållet i $file?

MatteMedlem 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.

lillebrorMedlem 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?

fiddlerMedlem 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.

lillebrorMedlem 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.

pettssonMedlem 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.

lillebrorMedlem 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.

MatteMedlem 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().

lillebrorMedlem 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å?

MatteMedlem 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.

lillebrorMedlem 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".

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