Autor Zpráva
jirivo
Profil *
Dobrý den, mám problém s kopírováním soborů ze složky na FTP serveru. Do té složky se ukládají obrázky, které se uploadují přes administraci a když chci soubor přejmenovat nebo zkopírovat na disk, tak mě to napíše, že operace není povolena. Složka má přitom nastavena pravidla na možnost zápisu, ale jednotlivé soubory v ní už ne. Obrázky se nahrávají do složky bez přípony a já právě potřebuji tu příponu dopsat, kvůli jedné službě, která je jinak nemůže zpracovat, ale nevím jak změnit název, když mě to nedovolí s těma souborama nic dělat.

Předem děkuji za pomoc
Davex
Profil
Na serveru jsou pravděpodobně nastavena chybná práva pro adresáře nebo je špatně nastavené FTP. Zkus složce nastavit práva 0777.
jirivo
Profil *
Davex:
Jo to všechno mám nastavené, někde jsem četl, že za to může nahrávání souborů přes formulář v administraci, ale nevím jak udělat, aby ty soubory šly stáhnout do počítače.
Davex
Profil
Na správně nakonfigurovaném serveru jde přes FTP přistupovat i k souborům nahraným pomocí formuláře - měly by jít stahovat, přejmenovávat, mazat atd. Pokud ti jde jen o přejmenování, tak to můžeš zkusit pomocí PHP skriptu, ale asi bych raději s tímto problémem kontaktoval podporu hostingu.
jirivo
Profil *
no nastavil jsem u nově nahrávaných souborů, aby se rovnou ukládaly už s chmod 0777, a ty jdou stáhnou bez problému, ale ty starý soubory u nich to chmod nejde nastavit vůbec, našel jsem nějaký skript, který by to měl umět, ale ten nefunguje, pořád to píše, že operace není povolena.

$ftp_details['ftp_user_name'] = 'xxxxx;
$ftp_details['ftp_user_pass'] = 'xxxxx';
$ftp_details['ftp_root'] = '/www/'; // s lomitkem na konci !
$ftp_details['ftp_server'] = 'xxxxx';

extract ($ftp_details);
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

$slozka = 'produkty/'; // s lomitkem na konci!

function nastav_opravneni_souboru($slozka) {
  $dir = opendir($slozka);
  while($s = readdir($dir)) {
    if ($s != '.' && $s != '..' && !is_dir($s)) {
      $path = $slozka.$s;
      if( chmod($path, 0777) != false )
        echo "OK - $path<br />";
      else
        echo "ERR - $path<br />";
    }
  }
}

ftp_close($conn_id);
jirivo
Profil *
Tak už jsem to zprovoznil, teď mi to změní chmod u souborů a může je kopírovat, ale zjistil jsem, že když použiju funkci readdir pro výpis souborů v adresáři, tak mi to nalezne asi jen třetinu souborů, než je ve skutečnosti ve složce, nevíte čím by to mohlo být ?
Davex
Profil
jirivo:
když použiju funkci readdir pro výpis souborů v adresáři, tak mi to nalezne asi jen třetinu souborů
Najdi mezi soubory nějaké rozdíly (práva, vlastník, přípona, název apod.)
jirivo
Profil *
No rozdíly tam nejsou, všechny obrázky byly nahrány přes webový formulář v jpegu a mají nastavení chmod 600. Ve složce je asi 500 souborů.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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