---
title: "Uploadfel - failed to open stream"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/94128-uploadfel-failed-to-open-stream"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "bassebhu"
published: "2004-01-06T23:02:53.000Z"
updated: "2004-01-09T00:06:28.000Z"
replies: 12
views: 572
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/94128-uploadfel-failed-to-open-stream"
---

# Uploadfel - failed to open stream

## #1 — bassebhu, 2004-01-06T23:02Z

Hej!

Får följande fel:

> Warning: move_uploaded_file(/images/bild.gif): failed to open stream: No such file or directory in gallery/upload.php on line 59
> 
> Warning: move_uploaded_file(): Unable to move '/tmp/phpucU6fP' to '/images/bild.gif' in gallery/upload.php on line 59

Har testat 3 olika uppladdningsscript som sägs ska funka, jag får samma felmeddelande. Är det min sökväg som inte är bra eller är det fel på servern? Movedelen är den här:

```
$upload_dir = '/images/';
[...]
move_uploaded_file($_FILES['userfile']['tmp_name'],$upload_dir.$_FILES['userfile']['name']);
```

Är det exakt sökväg jag måste ha? :o 

Sökte här och hittade en med liknande problem men hans lösning funkade inte för mig.

Mvh, Sebastian

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

## #2 — Matte, 2004-01-06T23:11Z

I PHP utgår absoluta sökvägar från diskroten inte webbroten.

Vill du ha en absolut sökväg från diskroten fungerar det för det mesta med:

```php
$upload_dir = $_SERVER['DOCUMENT_ROOT'].'/images/';
```

 
Annars använd en relativ sökväg.

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

## #3 — GrodanBoll, 2004-01-07T09:01Z

Jepp, medans om du ska radera en fil (unlink) så fungerar endast relativa sökvägar (iaf för mig).

Har dock för mig att det där med sökväg från diskroten (vid uppladdning av fil) endast gäller Windows? Kan dock inte kolla det själv. Någon som vet?

Konsekvent som attan. :)

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

## #4 — Matte, 2004-01-07T10:26Z

En absolut sökväg från diskroten i PHP börjar med / speciellt på Linux/unix. Egentligen börjar den på c:\\ på Windows, men att skriva / fungerar också.

Vad jag menade var att $\_SERVER\['DOCUMENT_ROOT'\] ger för det mesta, men dock inte alltid, webbroten.

Det finns webbservrar där denna servervariabel inte finns, och det finns tillfällen då webbservern är konfigurerad så $\_SERVER\['DOCUMENT_ROOT'\] inte ger webbroten.

Men ger $\_SERVER\['DOCUMENT_ROOT'\] rätt sökväg till webbroten, så fungerar den mot alla filsystemsrelaterade sökvägar, inklusive unlink, och de flesta sökvägar i PHP är mot filsystemet eftersom PHP arbetar på servern.

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

## #5 — bassebhu, 2004-01-07T11:02Z

> **Matte skrev:**
>
> I PHP utgår absoluta sökvägar från diskroten inte webbroten.
> 
> Vill du ha en absolut sökväg från diskroten fungerar det för det mesta med:
>
>
> ```php
> $upload_dir = $_SERVER['DOCUMENT_ROOT'].'/images/';
> ```
>
>  
> Annars använd en relativ sökväg.

ok, tack. jag vet inte absoluta sökvägen från disken. får väl ta reda på den från hotellet.

men relativ gilar jag bättre. var det inte det jag hade? hur skriver jag den annars?

Mvh, Sebastian

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

## #6 — bassebhu, 2004-01-07T11:04Z

För övrigt så är det en Unix-server...

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

## #7 — Matte, 2004-01-07T11:17Z

Det är bättre att använda relativa sökvägar, då är det lättare att flytta sin sida/kod mellan olika servrar.

Relativa sökvägar är precis som i HTML. 
Ligger filen i samma katalog som skriptet, eller i en underkatalog, så börjar du antingen med ./ eller ingenting, typ includes/conn.php eller ./includes/conn.php.
Ligger det i en katalog bredvid blir det att först gå ner en nivå ../includes/conn.php o.s.v. Det där kan du.

Det finns dock tillfällen då man är tvungen att använda absoluta sökvägar. T.ex om man inkluderar en fil i en annan fil, som i sin tur inkluderas i filer på olika nivåer på webbplatsen. Då måste man ha en absolut sökväg eftersom den utgår från huvudskriptets plats i filsystemet.
Det kan även finnas andra tillfällen då en absolut sökväg är nödvändig.

Ett enkelt sätt att kolla sin absoluta sökväg är att göra ett parse error. Då brukar man få sökvägen utskriven till sitt skript, om inte utskrift av felmeddelande är avstängt.
Jämför vad den ger gentemot vad $\_SERVER\['DOCUMENT_ROOT'\] ger.

Men som sagt, använd om möjligt relativa sökvägar.

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

## #8 — bassebhu, 2004-01-07T18:46Z

ok, ska testa när jag kommer hem. bara en snabb fråga till. varför detta "./" om man ska ange i samma mapp/upp en nivå? Såg att du skrev "eller ./" men har det nån funktion?

Mvh, Sebastian

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

## #9 — Matte, 2004-01-07T18:55Z

En enkel punkt är den katalog man befinner sig i, så ./ betyder att man utgår från den katalog skriptet ligger i. 
Samma sak om du inte har något alls före katalognamnet, då utgår det också från skriptets katalog.
Jag vet inte någon gång det skulle ha betydelse vilket.
De gånger man kan behöva använda punkt är när man ska köra en funktion som vill ha en katalog som parameter, och man vill ange befintlig katalog, då får man ange punkt som katalognamn, t.ex opendir('.')

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

## #10 — bassebhu, 2004-01-07T22:31Z

nej, har testat alla saker nu. får samma fel. permission denied? är det nåt med rättigheter eller inget stöd?

> Warning: move_uploaded_file(bild.gif): failed to open stream: Permission denied in /home2/blabla/public_html/gallery/upload.php on line 59
> 
> Warning: move_uploaded_file(): Unable to move '/tmp/php3G2G6W' to 'bild.gif' in /home2/blabla/public_html/gallery/upload.php on line 59

Testade sista gången i samma mapp. gick inte heller =/

59 är som sagt:
  if(is_uploaded_file($\_FILES\['userfile'\]\['tmp_name'\]))
    move_uploaded_file($\_FILES\['userfile'\]\['tmp_name'\],$upload_dir.$\_FILES\['userfile'\]\['name'\]);

men eftersom jag kopierat scriptet rakt av från en som kör det så kan det ju inte vara fel i det. sökvägen jovisst, men tycker jag har testat både relativa, fysiska och psykiska.

Fler förslag?

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

## #11 — SPiN, 2004-01-07T22:54Z

Det står ju där, grönt på, ehh, grönt. ;)

Permission denied. Du har helt enkelt inte rättigheter till att skapa filer på servern, genom PHP. :)

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

## #12 — bassebhu, 2004-01-07T23:14Z

hehe ja, jag tycker också det ;) men man förvånas ju aldrig. vissa felmeddelanden jag stött på förut har varit luriga så :P 

har mailat hotellet.... :)

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

## #13 — bassebhu, 2004-01-09T00:06Z

Nu är biffen kirrad! Satte rättigheterna till 777 på mappen images. Hurra!

Tack alla!

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

---

Tråden på webben: https://www.webforum.nu/amne/php/94128-uploadfel-failed-to-open-stream
