Avatar billede papacs Nybegynder
15. april 2003 - 13:55 Der er 4 kommentarer

filrettigheder i filoprettelse

Når jeg uploader filer med mit upload script er det kun "apache" der har rettigheder til de uploadede filer hvordan får jeg webserveren til at oprette filerne så alle kan se dem?
Det skal lige nævnes at jeg kører det på en linux maskine.
min kode:
<html><head><title>Upload resultat</title>
<link rel="stylesheet" type="text/css" href="upload.css">
</head>
<body>
<p>
<center>
<table><tr>
<td><?php

if (isset($_FILES['upfile'])) {

//til brug for info om filtyper
$str1 = $_FILES['upfile']['name'];
$str2 = $_FILES['upfile']['size'];
$str3 = $_FILES['upfile']['type'];

//Filer som kan uploades
$filetyper = array("image/gif", "text/html", "text/plain", "image/jpeg", "image/pjpeg", "image/png");

//stien, hvortil filerne skal placeres   
$dist = "/home/paparazzi/public_html/upload/";

//Tjek om der er en fil, samt om den overholder filtypen som kan uploades
    if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] == "") {
echo"Ingen fil valgt! <a href=\"$_SERVER[HTTP_REFERER]\">tilbage</a></td>\n";
echo"</tr></table>\n";
echo"</center>\n";
echo"</body></html>";
exit;

}elseif (!in_array($_FILES['upfile']['type'], $filetyper)) {
echo "Filen kan ikke uploades.<br>\n<b>$str3</b> er ikke tilladt for upload! <a href=\"$_SERVER[HTTP_REFERER]\">tilbage</a></td>\n";
echo"</tr></table>\n";
echo"</center>\n";
echo"</body></html>";
exit;
    }

echo"&Oslash;nsket fil til upload:<p>\n";

    if (isset($_FILES['upfile']['name']) && $_FILES['upfile']['name'] !="") {

//se http://dk.php.net/manual/en/function.is-uploaded-file.php for "is_uploaded_file"       
        if(is_uploaded_file($_FILES['upfile']['tmp_name'])) {

//Flyt filen fra upload-tmp til et dir. Husk at ændre "$dist" ovenover så det passer med din server :O)
move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $_FILES['upfile']['name']);
        }else{
        echo"Sorry, men upload skete IKKE!";
    }


echo "<b>Navn:</b> $str1, <b>st&oslash;rrelse:</b> $str2 bytes, <b>filtype:</b> $str3<br>\n";
echo"</p>";
    }
}else{

echo "Du skal v&aelig;lge en fil til upload. <a href=\"singleupload.html\">singleupload.html</a>";
}
?></td>

</tr></table>

</center>

</body></html>

hilsen christian poulsen
Avatar billede sukos Juniormester
15. april 2003 - 13:59 #1
hmm, måske en
move_uploaded_file($_FILES['upfile']['tmp_name'], $dist . $_FILES['upfile']['name']);
        }else{
        echo"Sorry, men upload skete IKKE!";
    }

chmod($dist . $_FILES['upfile'], 0777);

0777 "er hele svineriet"
Avatar billede sukos Juniormester
15. april 2003 - 14:01 #2
Men har selv oplavet probs. med at en bruger oploader en fil, som derefter chmod'es og så kan man som ftp-bruger IKKE få lov til at slette den/kopiere den via ftp! :O)
Avatar billede sukos Juniormester
15. april 2003 - 14:03 #3
Men andre kan godt se den via http.
Husk at chmod dit dir inden upload.
Vil slev anbefale at du bruger et FTP program til chmod af dir!
Avatar billede papacs Nybegynder
15. april 2003 - 14:21 #4
mange tak for hjælpen der var lige en lille bug men den fandt jeg selv :D
chmod($dist . $_FILES['upfile']['name'], 0777);
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