Autor Zpráva
Jan Tvrdík
Profil
Mám naprosto jednodochý kód. Nahraju soubor, ale už ho (bez admin práv) neotevřu (myšleno v průzkumníku). Ptám se tedy, kde je chyba.

Použitý kód
<?php
if (isset($_FILES['hloupost']))
{
	$f = "./hloupost.txt";
	if(!move_uploaded_file($_FILES['hloupost']['tmp_name'], $f))
	{
		exit("chyba");
	}
	chmod($f,0777); //nefunkční pokus o opravu
}
?>
Nahrání souboru na server
<form method="POST" ENCTYPE="multipart/form-data" action="<?php echo $_SERVER["PHP_SELF"]?>">
	<input type="file" name="hloupost">
	<input type="submit" value="Odeslat">
</form>


Fakta
Windows XP
PHP 5.3.0-dev
Apache/2.2.6
Localhost
orava
Profil
Jan Tvrdík
vidim ze mas navod z linuxsoftu!
Problem bude asi v zloske kde sa to uklada ta musi mat nastavene chmod tiez na 777
Jan Tvrdík
Profil
orava
chmod("./",0777); //další nefunkční pokus o opravu
$f = "./hloupost.txt";
if(!move_uploaded_file($_FILES['hloupost']['tmp_name'], $f))
{
	exit("chyba");
}
chmod($f,0777); //nefunkční pokus o opravu


vidim ze mas navod z linuxsoftu!
Z linuxsoftu mám jen tuhle "debug verzi". V praxi je to vypadá trochu jinak :P
Matty
Profil
Jan Tvrdík
A nebude to tím, že Windows něco jako práva nezná?
Jan Tvrdík
Profil
Matty
Přesto někdo rozhodl, jaká práva soubor dostane (čekal jsem, že automaticky převezme práva nadřazeného adresáře). Mě zajímá kdo to udělal a jak mu vysvětlit, že to potřebuji jinak.

Další fakt: Disk má formát NTFS
Mastodont
Profil
Windows přístupová práva mají, ale chmod nefunguje.
Jan Tvrdík
Profil
Mastodont
existuje tedy nějaký způsob, jak nastavit práva pod windowsama?
Davex
Profil
Teoreticky by to šlo voláním příkazu cacls.exe pomocí funkce exec() nebo shell_exec().
Mike8748
Profil
co takhle pouzit umask() pred volanim chmod() ?
Jan Tvrdík
Profil
Mike8748
To jsem vyzkoušel ještě před tím, než jsem psal jsem. Bohužel bez výsledku.

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:

0