Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno 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á?

Předmět Autor Datum
Vyzerá to na problém s právami. PHP, ktoré beží pod jedným používateľom, vytvorí súbory, ktoré môže…
los 23.09.2009 20:58
los
Nakonec jsem to upravil právě přes to chmod :-/ Přidal jsem tam řádek: chmod("./files/$name", 0777… poslední
Flash_Gordon 23.09.2009 21:22
Flash_Gordon

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.

Zpět do poradny Odpovědět na původní otázku Nahoru