Avatar billede flol Nybegynder
06. marts 2008 - 12:39 Der er 12 kommentarer og
1 løsning

Upload fejl - Permission denied

Hey
Har et upload script til billeder, men når jeg prøver at uploade et billede for jeg denne fejl:
-----------------
Warning: move_uploaded_file(brugersys/img/1204802962_yourlovebluegreenlille.jpg) [function.move-uploaded-file]: failed to open stream: Permission denied in C:\Inetpub\wwwroot\localuser\webberiet.dk\subdomains\kasper\brugersys\opret.php on line 40

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\WINDOWS\TEMP\phpAAB0.tmp' to 'brugersys/img/1204802962_yourlovebluegreenlille.jpg' in C:\Inetpub\wwwroot\localuser\webberiet.dk\subdomains\kasper\brugersys\opret.php on line 40
------------------

Har været inde og Chmode min mappe, men for stadig samme fejl. Koden jeg bruger er her:
-------------------

$query2 = mysql_query("SELECT * FROM brugere WHERE id = '$ret'");
            $row2 = mysql_fetch_assoc($query2);
            unlink($row2['billede']);
           
            $file=$_FILES['fil']['tmp_name'];
            $name=$_FILES['fil']['name'];
            $name=str_replace(" ", '_', $name);
            $name = str_replace("-", "", $name);
            $name = str_replace("å", "a", $name);
            $name = str_replace("Å", "a", $name);
            $name = str_replace("ø", "o", $name);
            $name = str_replace("Ø", "o", $name);
            $name = str_replace("æ", "e", $name);
            $name = str_replace("Æ", "e", $name);
            $ext=strrchr($_FILES['fil']['name'],'.');
            $ext=strtolower($ext);
            $types=array(".gif", ".jpg", ".bmp");
            $path="brugersys/img/" . time() . "_" . $name;
            if(in_array($ext, $types) && $_FILES['fil']['size'] < 202400) {
                move_uploaded_file($file, $path);
                if($_POST['pass'] == "") {
                    mysql_query("UPDATE brugere SET bruger = '$bruger', navn = '$navn', dag = '$dag', moned = '$moned', aar = '$aar', landsdel = '$landsdel', postnr = '$postnr', mail = '$mail', tlf = '$tlf', profil = '$profil', billede = '$path' WHERE id = '$ret'") or die(mysql_error());
                }else{
                    mysql_query("UPDATE brugere SET bruger = '$bruger', pass = '$pass', navn = '$navn', dag = '$dag', moned = '$moned', aar = '$aar', landsdel = '$landsdel', postnr = '$postnr', mail = '$mail', tlf = '$tlf', profil = '$profil', billede = '$path' WHERE id = '$ret'") or die(mysql_error());
                }
                echo "Din bruger er nu rettet!";
            }else{
                echo "Din fil skal være i enten GIF, JPG eller BMP format og fylder mindre en 200kb (202400 bytes)!";
            }
------------------------
Håber i kan hjælpe... :S
Avatar billede showsource Seniormester
06. marts 2008 - 12:45 #1
Du er allerede i mappen brugersys:
C:\Inetpub\wwwroot\localuser\webberiet.dk\subdomains\kasper\brugersys\opret.php
Så $path skal jo nok være
$path="img/" . time() . "_" . $name;

hvis altså det er et underdir til mappen brugersys
Avatar billede flol Nybegynder
06. marts 2008 - 12:53 #2
hmm nej, bruger en script på index'et:
----------------------
$menu = $_GET['menu'];
$menu = str_replace("-", "/", $menu);
if($menu == "") {
    include("forside.php");
}else{
    include($menu.".php");
}
----------
så stien er god nok...
Avatar billede skau Nybegynder
06. marts 2008 - 12:54 #3
et gæt - har du safe mode slået til - hvis ja så slå den fra
Avatar billede skau Nybegynder
06. marts 2008 - 12:54 #4
i php.ini
Avatar billede flol Nybegynder
06. marts 2008 - 13:00 #5
hvordan ser jeg om den er det ?
Avatar billede showsource Seniormester
06. marts 2008 - 13:03 #6
Det er et underdir til din indexfil?

I din index fil:

$realpath = dirname($_SERVER["PATH_TRANSLATED"]);

og i opret.php

$path = $realpath."\\img\\" . time() . "_" . $name;

Og din include() er lidt "vissen"

?menu=http://www.baddomain/badfile
Avatar billede showsource Seniormester
06. marts 2008 - 13:06 #7
\\ fordi du er på windåze

En

<?php phpinfo(); ?>

vil vise div. vars, bl.a. safe_mode

Du kan også

<?php

echo ini_get('safe_mode');

?>
Avatar billede flol Nybegynder
06. marts 2008 - 13:08 #8
Det hjælper intet :S
stadig samme fejl..
Avatar billede showsource Seniormester
06. marts 2008 - 13:12 #9
Efter du definerer $path:

        if(!is_dir($path)) {
        echo "Dir for upload does not exists!";
        exit;
        }


        if(!is_writable($path)) {
        echo "Dir for upload has no permissions to save file!";
        exit;
        }

        if(!is_readable($_FILES["titlefile"]["tmp_name"])) {
        echo "Error reading tempfile!";
        exit;
        }

        if(!is_writable($_FILES["titlefile"]["tmp_name"])) {
        echo "Cannot move tmpfile!";
        exit;
        }
Avatar billede flol Nybegynder
06. marts 2008 - 13:26 #10
safe mode er slået fra
Avatar billede flol Nybegynder
06. marts 2008 - 13:40 #11
hmm :/
nåh jeg refresher et par gange, så gør den det pludselig :S
Avatar billede kjeldsted Novice
06. marts 2008 - 18:35 #12
Husk også at destinations mappen skal have tilladelsen '777' for at brugeren kan uploade filer...
Avatar billede flol Nybegynder
28. maj 2008 - 22:11 #13
Det var fordi jeg ikke havde nok rettigheder
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester