Autor Zpráva
kuxa
Profil
Zdravím,
vím, že to tu už mockrát bylo, ale stejně jsem odpověď nenašel...
Mám skript na nahrávání souborů. Mám formulář a potom zpracování:
if (isset ($_FILES["soubor"]))
 { 
  if (is_uploaded_file($_FILES["soubor"]["tmp_name"]))
   {
    $jmeno_souboru = "neco.png";
        if (move_uploaded_file($_FILES["soubor"]["tmp_name"], "soubory/".$jmeno_souboru))
         {
         chmod("soubory/" . $jmeno_souboru, "0755");
          echo "Soubor přesunut!" . "<br>";
          echo "Velikost ".$_FILES["soubor"]["size"];
          echo "<br>Tmp_jméno ".$_FILES["soubor"]["tmp_name"];
          echo "<br>Jméno i s koncovkou ".$_FILES["soubor"]["name"];
         }
          else
           {
            echo "Soubor se nepodařilo přesunout!" . "<br>";
           }
   }
    else
     echo "Soubor nenahrán." . "<br>";
To neco.png tam mám jen dočasně, až to bude fungovat, upravím to.

Jde o to, že soubor se úspěšně nahraje, i ho vidím na FTP, ale nejde stáhnout ani přes FTP (přístup odepřen), nejde na něj jít přímo odkazem (chyba 403) a nejde na něj ani odkázat (např. jako na obrázek).
Takže to asi bude něco s oprávněním.
Jenže právě to by měl řešit chmod. Napřed jsem u něj měl 0644, a když soubor nešel otevřít, tak jsem nastavil "volnější" 0755, které ale taky nefunguje.

Víte prosím někdo, jak můj problém vyřešit? Děkuji předem :)
Davex
Profil
Správně má být v druhém parametru číslo v osmičkové soustavě.

chmod("soubory/" . $jmeno_souboru, 0755);

String "0755" se převede na číslo 755, což je v osmičkové soustavě 01363.
kuxa
Profil
Davex: Děkuji za odpověď! Je možné, že by se to touto variantou dalo také vyřešit, nicméně už jsem na to přišel sám. Místo $jmeno_souboru jsem do chmodu vložil $_FILES["soubor"]["name"] a funguje to perfektně :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: