---
title: "Hm, problem med unlink()"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/107775-hm-problem-med-unlink"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "wmaster"
published: "2004-07-21T18:08:00.000Z"
updated: "2004-07-21T20:25:11.000Z"
replies: 11
views: 304
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/107775-hm-problem-med-unlink"
---

# Hm, problem med unlink()

## #1 — wmaster, 2004-07-21T18:08Z

Håller på med ett uploadscript till admin på en sida. Jag gör administrationsdelen för en sektion som heter "Medlemmar". Det visar sig att det funkar utmärkt att ladda upp en bild när jag lägger till en medlem. Men vidare när jag ska redigera en medlem och man väljer en annan bild som man vill ska laddas upp, då händer ingenting.

Det verkar som att om det redan finns en bild i mappen med samma namn så kan den inte skriva över den. Jag har gjort så att bilderna döps efter ett id som varje medlem får. Därför har jag försökt gjort denna kontroll som ska ta bort en gammal bild med samma namn om sådan finns.

```php
if($image)
{
	$file = $_GET["memberId"].".jpg";
	$target_dir = "template/gfx/";
	if(is_uploaded_file($_GET["id"]).".jpg")
	{
		unlink($target_dir.$file);
	} 
					move_uploaded_file($_FILES["image"]['tmp_name'], "template/gfx/".$_GET["id"].".jpg");
}
```

 

Men det trasslar hela tiden till sig på unlink-funktionen.
Warning: Unlink failed (No such file or directory) detta får jag hela tiden även om jag är tämligen säker på att det ska vara denna sökväg då t.ex. move_uploaded_file en bit nedanför fungerar. Och det är inget med skrivrättigheter eller dylikt då det fungerar att ladda upp osv.

Det som händer om jag inte kör denna kontroll är att själva redigeringen inte ger något fel meddelande, utan det som händer är det att det skapas en bild, i den mapp där bilderna ska laddas upp, som bara heter .jpg
Och det är rätt bild som jag vill ladda upp, men jag kan alltså inte få den att ta bort/ersätta den gamla bilden.

Någon som kan hjälpa mig?

Permalänk: https://www.webforum.nu/p/107775

## #2 — Matte, 2004-07-21T18:44Z

Om du gör så här, fungerar det då ?

```php
    $file = $_GET['id'].".jpg";
    $target_dir = "template/gfx/";
    if(file_exists($target_dir.$file)
    {
        unlink($target_dir.$file);
    } 
    move_uploaded_file($_FILES["image"]['tmp_name'], "template/gfx/".$_GET["id"].".jpg");
```

Permalänk: https://www.webforum.nu/p/1392475

## #3 — wmaster, 2004-07-21T18:56Z

Hm, konstigt...då får jag jag parse error på denna:

```php
 unlink($target_dir.$file);
```

Permalänk: https://www.webforum.nu/p/1392478

## #4 — Matte, 2004-07-21T19:01Z

Saknas en slutparentes:

```php
if(file_exists($target_dir.$file)) // Sista parentesen saknades
```

Permalänk: https://www.webforum.nu/p/1392480

## #5 — wmaster, 2004-07-21T19:31Z

självklart..ska testa nu

Permalänk: https://www.webforum.nu/p/1392492

## #6 — wmaster, 2004-07-21T19:40Z

Hm, det som händer nu är att if(file_exists($target_dir.$file)) inte körs. Jag har kontrollerat att $target_dir.$file ger rätt sökväg och filnamn och att den bilden verkligen finns i mappen :/

Permalänk: https://www.webforum.nu/p/1392496

## #7 — Matte, 2004-07-21T19:48Z

Går den inte in if-satsen, eller körs inte unlink ?

```php
   if(file_exists($target_dir.$file))
    {
        echo "Raderar ".$target_dir.$file."<br>";
        unlink($target_dir.$file);
    }
```

 
Skrivs något ut då ?

Permalänk: https://www.webforum.nu/p/1392501

## #8 — wmaster, 2004-07-21T19:50Z

Alltså jag har testat var den skriver ut och ingenting skrivs utan inne i if-satsen så den går följaktligen inte igenom denna. Det är det jag tycker är konstigt då $target_dir.$file verkligen generar rätt sökvägen osv...bild finns och allt

Permalänk: https://www.webforum.nu/p/1392503

## #9 — Matte, 2004-07-21T20:00Z

Fungerar din move_upload_file() så är det verkligen konstigt.

Om du tar bort if-satsen runtomkring, vad visar felmeddelandet då?
Visa hela felmeddelandet.

Permalänk: https://www.webforum.nu/p/1392509

## #10 — wmaster, 2004-07-21T20:02Z

Det verkar som om jag lyckats lösa det hela. Problemet verkade ligga i $\_GET\["id"\] och $\_GET\["memberId"\]

```php
if($image)

{

    $file = $_GET["memberId"].".jpg";

    $target_dir = "template/gfx/";

    if(is_uploaded_file($_GET["id"]).".jpg")

    {

        unlink($target_dir.$file);

    } 

                    move_uploaded_file($_FILES["image"]['tmp_name'], "template/gfx/".$_GET["id"].".jpg");

}
```

Då jag bytta ut "id" mot "memberId" i move_uploaded_file-strängen så fungerade det. Till en början skapade den en fil med samma namn flrutom att det belv dubbelt .jpg. Men jag tog bort medlemmen helt och hållet och skapade en ny, sedan när jag bytte bild fungerade det. Men jag tycker fortfarande att det är konstigt eftersom"id" generade rätt i move_uploaded_file men inte tidigare där uppe i koden...

Permalänk: https://www.webforum.nu/p/1392511

## #11 — Matte, 2004-07-21T20:06Z

Men du kan inte använda is_uploaded_file() som du gjort här.
is_uploaded_file() används för att kolla om någon fil precis nu är uppladdad via $\_FILES.

Det är file_exists() du måste använda för att kolla om en fil finns.

Permalänk: https://www.webforum.nu/p/1392521

## #12 — wmaster, 2004-07-21T20:25Z

Japp...det fungerar nu iaf...tack för all hjälp

Permalänk: https://www.webforum.nu/p/1392537

---

Tråden på webben: https://www.webforum.nu/amne/php/107775-hm-problem-med-unlink
