Autor Zpráva
Neas
Profil
ahoj.
udělal jsem si funkci pro uploadování souborů (je určená pouze pro administraci, pro uploadování malých obrázků). Na localhostu funkce funguje bez problému, ale když jsem ji uploadnul na server (ic.cz), vyhazuje se mi chyba (viz. zvýrazněná část v kódu).
Nevíte někdo, co by to mohlo způsobovat a jak se toho zbavit?
function upload($file, $format)
{
  $handle = opendir("http://domena.tym.cz/img/");
  while ($soubor = readdir($handle))
    if (preg_match("~.*\.(png|gif)$~", $soubor))
      $count++;
  closedir($handle);
  $file['name'] = ++$count.".".$format; // jména uploadovaných souboprů rovnou měním na čísla, pokaždé o jedno vyšší
  $obrazek = $handle.$file['name'];
  if($file['type'] == "image/".$format)
  {
    if($file['error'] == 0)
    {
      umask(0);
      if(move_uploaded_file($file['tmp_name'], $obrazek))
        return $count;
      else return "Chyba při ukládání souboru!";
    }else
      return ($file['error'] == UPLOAD_ERR_INI_SIZE) ? "Uploadovaný soubor je příliš velký!" : "Neznámá chyba při uploadování souboru!";
  }else
    return "Soubor musí být ve formátu ".$format."!";
}

Děkuji
Ernie
Profil *
Na ic.cz je zakázáno psát do souborů, které nemají příslušná přístupová práva, a tam spadají i Ty neexistující. Možná by pomohlo nastavit tomu skriptu právo pro zápis (v Total Commanderu se soubor na webu označí a pak Files -> Change Attributes -> 777), ale moc nadějně bych to neviděl, chce to ty soubory vytvořit dopředu.
WertriK
Profil
$handle = opendir("http://domena.tym.cz/img/");
....
$obrazek = $handle.$file['name'];


Není to samé jako

$obrazek = "http://domena.tym.cz/img/".$file['name'];


Chyba bude dle mě v té cestě, tak to zkus upravit ("/img/".$file['name']).
Neas
Profil
WertriK:
děkuji, tohle jsem přehlédl. Po opravě mi skript říká, že vše proběhlo v pořádku, avšak obrázek se nikde na serveru neobjeví.
Ernie:
tyhle Attributes je totéž, co chmod? po změně chmodu na 777 žádná změna.
Ernie
Profil *
Zkuste vytvořit prázdný soubor s určitým jménem, nastavit jemu i skriptu těch "777" (což by mělo povolit vše) a pak jej přepsat tím obrázkem, mělo by to fungovat.
Případně zkuste jiný webhosting.
Davex
Profil
Neas:
Pravděpodobně máš vypnuté zobrazování chyb, které kdybys zapnul, tak by ses možná dozvěděl, že nemáš právo zápisu do adresáře /img/, který je mimo tvůj povolený prostor.

Asi to zkus bez toho úvodního lomítka nebo uprav správně celou cestu.
$obrazek = 'img/' . $file['name'];
Neas
Profil
vyzkouším tedy nový hosting, snad to pak bude fungovat.
děkuji

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