Problemet er at du via ftp opretter mappen og chmod'er den, så kan du fint sætte den til chmod 777.
Når du gør det samme via php kode, så er det php/apache som er ejeren af filen/processen.
Du kan ikke løse dit problem med en smart kommando, desværre.
Vil det sige at der aldrig vil kunne uploades til en mappe oprettet af php?
Det her virker fint for mig på en freebsd/apache
<?php
$root = $_SERVER["DOCUMENT_ROOT"];
$url_link = "/upload/";
$dist = $root . $url_link;
if(!is_dir($dist)) {
echo"Opret uploaddir!";
exit;
}
if(!is_writeable($dist)) {
echo"Tjek skriverettigheder på ". $dist ." !!!!!<br />";
exit;
}
?>
<form enctype="multipart/form-data" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
Vælg fil:<br>
<input name="upfile" type="file"><br>
Filer uploades til mappen: <?php echo $dist; ?>
<br />
eller indtast nyt navn til dir: <input type="text" name="newdir">
<br />
<input type="submit" value="Upload">
</form>
<?php
if (isset($_FILES["upfile"])) {
if(!empty($_POST["newdir"])) {
mkdir($dist . $_POST["newdir"], 0777);
chmod($dist . $_POST["newdir"], 0777);
$dist = $dist . $_POST["newdir"] ."/";
$url_link .= $_POST["newdir"] ."/";
}
if(move_uploaded_file($_FILES["upfile"]["tmp_name"], $dist . $_FILES["upfile"]["name"])) {
echo"Filen, ". $_FILES["upfile"]["name"] ." er uploadet. <a href=\"". $url_link . $_FILES["upfile"]["name"] ."\">". $_FILES["upfile"]["name"] ."</a>";
}else{
echo"Filen blev ikke uploadet?";
}
}
?>
showsource: Det kommer jo meget an på hvordan selve serveren/webhotellet er sat op.
Så for nogle virker det, andre gange gør det ikke.
ehh, hvordan mener du, altså hvad skulle gøre det IKKE kan gøres, udover disabling af chmod m.m. ?
Om man kan lave mkdir() og chmod() er jo udelukkende et spørgsmål om rettigheder.
Og jeg har set eksempler på at disse filer kommer til at blive ejet af NOBODY/NOBODY
Og dermed kan php ikke tilgå dem efterfølgende.
Der er muligvis tale om dårlig opsæt af webhotellet, men mkdir() / chmod() vil ikke virke efter hensigten.
ehhh, hvis ejer bliver bliver nobody, er det vel forkert chmod som er skyld i det ?
Eller forkert chmod/ejer af filen som laver dirs/filer ?
Tak begge to - smid et svar hver :)
(jeg valgte at lade være med at bruge mapper, men i stedet bar at kalde dem <id>_<rand>.jpg
Svar!
Du ville evt. også kunne styre det med en database.
ingen point til mig, ellers tak
Ok - tak begge to.
Jakob - ikke dårlig idé. Det er dog intet problem uden.