Avatar billede mrbs Nybegynder
02. april 2008 - 12:41 Der er 9 kommentarer og
1 løsning

move_uploaded_file giver problemer hos dandomain

Hej!

Jeg har følgende kode, som skulle uploade fil til website:

if ($_POST[sendknap]) {

$fil = $_FILES["upfil"];
$max_stoerrelse = 1000;

    if ($fil["size"] > 0) {
     
        $filtyper_tilladt = array("image/jpeg", "image/pjpeg", "image/png", "image/gif");
        $bibliotek = "uploads/images/original";
        $fra = $fil["tmp_name"];
        $tilnavn = date("YzGis");
        $fil_stoerrelse = filesize($fra)/1024;
        $filtype = $fil["type"];

          //giver filen den rigtige endelse
          if ($filtype == "image/jpeg" || $filtype == "image/pjpeg") {
            $tilfiltype = "jpg";
          } else if ($filtype == "image/gif") {
            $tilfiltype = "gif";
          } else if ($filtype == "image/png") {
            $tilfiltype = "png";
          }
       
        $til = $_SERVER["DOCUMENT_ROOT"] . "$bibliotek/$tilnavn.$tilfiltype";
       
        $fejl = 0;

        if(!in_array($filtype, $filtyper_tilladt)) {
            $uploadstatus = "Denne filtype må ikke uploades.";
            $fejl = 1;
        }
        if ($fil_stoerrelse > $max_stoerrelse) {
            $uploadstatus = "Filen er for stor.";
            $fejl = 1;
        }
     
        if ($fejl == 0) {
         
            if (move_uploaded_file($fra, $til)) {
                // ændrer rettighederne
                chmod("$til", 0644);
               
                header('Location: images.php');
               
            } else {
                $uploadstatus = "Desværre, filen '" . $fil["name"] . "' kunne ikke uploades!";
            }
        }
    } else {
        $uploadstatus = "Der er ikke vedhæftet nogen fil!";
    }
}

Denne kode virkede, da sitet lå hos Web10, men siden jeg flyttede det over til danDomain, får jeg min fejlmeddelelse: "Desværre, filen xxx.jpg kunne ikke uploades!"

Kan nogen forklare hvorfor? Jeg har selv fundet frem til, at det jo så sandsynligvis har noget at gøre med move_uploaded_file at gøre. Den samlede "$til-sti" bliver:
/usr/home/website.dk/htdocs/uploads/images/original/200892123040.jpg

Kan der være noget galt i det? Jeg har tjekket rettigheder i $til-mappen, som står til 775...

PHP Version 5.2.3

Håber det var info nok :)
Avatar billede coderdk Praktikant
02. april 2008 - 14:04 #1
Får du en fejl? Prøv evt i toppen at skrive error_reporting( E_ALL );

Du kan også prøve

$til = realpath($_SERVER["DOCUMENT_ROOT"] . "$bibliotek/$tilnavn" ) . "/".$tilfiltype";
Avatar billede mrbs Nybegynder
02. april 2008 - 15:25 #2
Jeg får ingen fejl :( og dit forslag virker heller ikke...
Avatar billede coderdk Praktikant
02. april 2008 - 15:42 #3
prøv lige at skrive i toppen:

echo ( is_writable( $_SERVER["DOCUMENT_ROOT"] . "$bibliotek/$tilnavn" ) ? "OK" : "NEJ!" );
Avatar billede mrbs Nybegynder
02. april 2008 - 16:00 #4
Nej!! :)

Sært
Avatar billede pidgeot Nybegynder
02. april 2008 - 16:02 #5
Det skulle vel aldrig være sådan at du oprettede mappen udenom PHP da du flyttede din side? Så vil jeg tro du skal bruge 777 som rettigheder, da jeg vil gætte på at PHP-brugeren ikke kører som din user, og heller ikke tilhører din group.
Avatar billede mrbs Nybegynder
02. april 2008 - 16:16 #6
Den er oprettet udenom php...
Men nu har jeg været inde og angive rettighederne som 777...

Den skriver ok nu, men stadig ingen upload...
Avatar billede showsource Seniormester
02. april 2008 - 16:26 #7
Jeg havde problemer på et host hvor $_SERVER["DOCUMENT_ROOT"] "manglede" /var foran.
Måske det er samme her?

http://www.eksperten.dk/spm/820922
Avatar billede mrbs Nybegynder
02. april 2008 - 17:55 #8
Sært... Nu er den der, men jeg har ikke gjort noget :) anyways no problem nu...
Avatar billede mrbs Nybegynder
02. april 2008 - 17:55 #9
point
Avatar billede coderdk Praktikant
02. april 2008 - 18:24 #10
Det er vel pidgeots point, da han foreslog 777 og du havde sat dem til 775 :P
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