Avatar billede steenolsen1 Nybegynder
20. december 2004 - 11:42 Der er 2 kommentarer og
1 løsning

Permission denied ved billedupload

Hej,

jeg har problemer med at uploade billeder til mit webhotel. Koden fungerer fint på min egen pc, men når jeg lægger det hele op på serveren får jeg denne fejl:

Warning: move_uploaded_file(../billeder/canonpsa60.jpg): failed to open stream: Permission denied in /web/www.mitdomæne.dk/www/kunder/dpf/admin/opdater.php on line 112

Warning: move_uploaded_file(): Unable to move '/tmp/php0IO3Du' to '../billeder/canonpsa60.jpg' in /web/www.startnetbutik.dk/www/kunder/dpf/admin/opdater.php on line 112
Der opstod desværre en fejl. Information omkring fejlen: Array ( [userfile] => Array ( [name] => canonpsa60.jpg [type] => image/pjpeg [tmp_name] => /tmp/php0IO3Du [error] => 0 [size] => 10093 ) )

Den kodestump jeg bruger til at uploade med ser sådan her ud:
// Tjekker om et nyt billede skal erstatte det gamle
        if($_FILES['userfile']['name'] <> '') {
            $uploaddir = '../billeder/';
            $uploadfile = $uploaddir . $_FILES['userfile']['name'];

            if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
            } else {
              print "Der opstod desværre en fejl. Information omkring fejlen:\n";
              print_r($_FILES);
            }
            $billede = $_FILES['userfile']['name'];
        }
        // Sletter billede
        elseif($_POST['slet_billede_basis'] == '1') {
            $billede = '';
        }       
        // Bibeholder billede
        else {
            $billede = $_POST['reg_filnavn'];
        }
   
        $tekst = $_POST[tekst];

        // Registrerer ændringer
        include("connect.php");
        mysql_query("UPDATE basistekster SET overskrift = '$_POST[overskrift]', indledning = '$_POST[indledning]', tekst = '$tekst', billede = '$billede' WHERE mode = '$_POST[mode]'");


Hvis jeg kører en phpinfo(); kan jeg se at upload ER aktiveret og at der kan uploades op til 20M.

Ved du hvad problemet kan være?
Steen
Avatar billede morteeart Nybegynder
20. december 2004 - 11:46 #1
At på din egen pc kører du windows, og i windows er CHMOD (rettigheder) ligegyldigt
Men din host kører sikkert unix, hvor du skal CHMOD 777 (skriverettigheder) til den mappe du uploader til.

Kan gøres fra enhvert ftp program.
Avatar billede steenolsen1 Nybegynder
20. december 2004 - 14:55 #2
Hmm.... Troede jeg du havde ret i, men jeg kan godt uploade et andet sted på siden.

Den her kode virker ikke:
        // Tjekker om et nyt billede skal erstatte det gamle
        if($_FILES['userfile']['name'] <> '') {
            $uploaddir = '../billeder/';
            $uploadfile = $uploaddir . $_FILES['userfile']['name'];
           
            print "<pre>";
            if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
              print_r($_FILES);
            } else {
              print "Der opstod desværre en fejl. Information omkring fejlen:\n";
              print_r($_FILES);
            }
            print "</pre>";
            $billede = $_FILES['userfile']['name'];
        }
        // Sletter billede
        elseif($_POST['slet_billede_basis'] == '1') {
            $billede = '';
        }       
        // Bibeholder billede
        else {
            $billede = $_POST['reg_filnavn'];
        }


Den her kode virker:
    if(isset($_POST['nyhedsbrev_ok'])) {
        header("Location: index.php?menu=nyhedsbrev");
        $uploaddir = '../nyhedsbreve/';
        $uploadfile = $uploaddir . $_FILES['userfile']['name'];
       
        print "<pre>";
        if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
          print_r($_FILES);
        } else {
          print "Der opstod desværre en fejl. Information omkring fejlen:\n";
          print_r($_FILES);
        }
        print "</pre>";
        $filnavn = $_FILES['userfile']['name'];

Jeg kan ikke umiddelbart se forskellen ud over de sidste par if-sætninger, men det kan jeg heller ikke se at der er noget galt med....
Avatar billede steenolsen1 Nybegynder
20. december 2004 - 14:58 #3
Har fundet fejlen! Det hjalp at få smidt de to koder herop så jeg kunne se det....

Det er den her der driller
if($_FILES['userfile']['name'] <> '') {

og som jeg har ændret til
if($_POST[userfile] <> '') {
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