![Přidat otázku mezi oblíbené Přidat otázku mezi oblíbené](https://static.poradna.net/images/post/action/favorite.png)
![Zasílat nové odpovědi e-mailem Zasílat nové odpovědi e-mailem](https://static.poradna.net/images/post/action/subscribe.png)
PHP - uploadovaný soubor nejde stáhnout
Mám jednoduchý skript přes který odesílám soubory na server:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />
<title>Upload</title>
</head>
<body>
<?php
if (isset($_POST["jmeno_souboru"])) {$jmeno_souboru=$_POST["jmeno_souboru"];}
else $jmeno_souboru="";
echo'
<form method="post" enctype="multipart/form-data">
Uploadovaný soubor: <input type="file" name="jmeno_souboru">
<input type="submit" value="Upload">
</form>
';
if (isset($_FILES["jmeno_souboru"]["name"]))
{
if (is_uploaded_file($_FILES["jmeno_souboru"]["tmp_name"]))
{
$name = $_FILES["jmeno_souboru"]["name"];
if (move_uploaded_file($_FILES["jmeno_souboru"]["tmp_name"], "./files/$name"))
{
echo "Soubor \"$name\" byl uploadován<br/><img src=\"$name\">";
// vypis uploadovanych souboru
$handle=opendir('./files/');
while (false!==($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
echo "$file<br>\n";
}
}
// konec vypis uploadovanych souboru
closedir($handle);
}
else {echo"Nastala chyba";}
}
}
?>
</body>
</html>
Ovšem když se pokusím stáhnout soubory přes Total Commander, tak to hlásí chybu: Permission danied, chyba při stahování souborů.
Když se dívám přes Total Commander na ty soubory tak tam skutečně nahrané jsou a mají práva 600.
Bohužel nejdou stahnout. Podle velikosti se zdá, že jsou ty soubory uploadlé OK.
Dokonce jdou mazat a přejmenovávat přes FTP, ale nejdou zkopírovat.
Netuší někdo proč se to takto chová?
Vyzerá to na problém s právami. PHP, ktoré beží pod jedným používateľom, vytvorí súbory, ktoré môže čítať a zapisovať len on (práva = 600). Ty potom pristupuješ pod iným používateľom, ktorý nemôže nič.
Skús si pozrieť a použiť funkciu chmod.
Nakonec jsem to upravil právě přes to chmod![:-/](https://static.poradna.net/images/smiley/confused.gif)
Přidal jsem tam řádek:
chmod("./files/$name", 0777);
To bude vysvětlení![:-)](https://static.poradna.net/images/smiley/smile.gif)