Autor Zpráva
n5ver
Profil
Ahoj, uploadování obrázku mi jako takové funguje. Rozhodl jsem se připsat omezení na 300 kb, ale to mi nefunguje. Soubor se uploadne, i když je větší. Mám to napsané takto:
<?
$limit = 300000;
$soubor_name = ($_FILES["soubor"]["name"]);
$soubor = ($_FILES["soubor"]["tmp_name"]);
$soubor_size = ($FILES["soubor"]["size"]);
$ok = ($_POST["ok"]);
$popis = ($_POST["popis"]);
$kam = ($_POST["kam"]);

if ($ok == "Nahraj" && $soubor_name!="" && $popis!="")
{
  if (!$soubor_size >= $limit){
    if (move_uploaded_file($soubor, "pic/foto/$soubor_name"))
        {
        chmod ("pic/foto/$soubor_name", 777);
        $query = MySQL_Query("INSERT INTO galerie (soubor, popis, kam) VALUES ('".$soubor_name."', '".$popis."', '".$kam."')") or die(mysql_error());
        header("location:administrace.php?p=galerie");
        echo "<p><b>Soubor $soubor_name byl nahrán na server. $nazev</b></p>";
        }
      }
    else
        {
        echo "<p><b>Chyba - soubor nebyl nahran</b></p>";
        }
}
?>
Tori
Profil
Překlep, čtete z jiného pole.
Mohla jsem napsat č.řádku, pravda.
n5ver
Profil
Aha. Už to vidím. Děkuji.
Taps
Profil
n5ver:
Coze? Ja nikde preklep najit nemuzu.
opravdu ? a co je toto
$soubor_size = ($_FILES["soubor"]["size"]);
n5ver
Profil
Tak to mám opravené. Když je soubor moc veliký, tak se nenahraje, ale i když je správně veliký, tak se nenahraje. Nepíše to chybu, že je soubor moc veliký, ale jenom Chyba - soubor nebyl nahrán. Nevíte v čem to může být?

<?
$limit = 300001;
$soubor_name = ($_FILES["soubor"]["name"]);
$soubor = ($_FILES["soubor"]["tmp_name"]);
$soubor_size = ($_FILES["soubor"]["size"]);
$ok = ($_POST["ok"]);
$popis = ($_POST["popis"]);
$kam = ($_POST["kam"]);

if ($ok == "Nahraj" && $soubor_name!="" && $popis!="")
{
  if (!$soubor_size >= $limit){
    if (move_uploaded_file($soubor, "pic/foto/$soubor_name"))
        {
        chmod ("pic/foto/$soubor_name", 777);
        $query = MySQL_Query("INSERT INTO galerie (soubor, popis, kam) VALUES ('".$soubor_name."', '".$popis."', '".$kam."')") or die(mysql_error());
        header("location:administrace.php?p=galerie");
        echo "<p><b>Soubor $soubor_name byl nahrán na server. $nazev</b></p>";
        }
      }
    else
        {
        echo "<p><b>Chyba - soubor nebyl nahrán.";
        }
}
else {
echo "Nebyly vyplněny všechny údaje!";
}
if ($soubor_size >= $limit){
echo " Soubor je moc velký. Maximální povolená velikost je 300 kb.</b></p>";
}
?>
Ben
Profil *
a co spis nejak takto?
<?
$limit = 300001;
$soubor_name = ($_FILES["soubor"]["name"]);
$soubor = ($_FILES["soubor"]["tmp_name"]);
$soubor_size = ($_FILES["soubor"]["size"]);
$ok = ($_POST["ok"]);
$popis = ($_POST["popis"]);
$kam = ($_POST["kam"]);

if ($ok == "Nahraj" && $soubor_name!="" && $popis!=""){
  //soubor size musi byt mensi nez limit
  if ($soubor_size < $limit){
    if(move_uploaded_file($soubor, "pic/foto/$soubor_name")){
      chmod ("pic/foto/$soubor_name", 777);
      $query = MySQL_Query("INSERT INTO galerie (soubor, popis, kam) VALUES ('".$soubor_name."', '".$popis."', '".$kam."')") or die(mysql_error());
      header("location:administrace.php?p=galerie&nahrano=ok");
      //toto echo se ti nikde nevypise, pouzij dalsi GET promenou(napr: $_GET["nahrano"] a overuj v souboru administrace.php, jestli je poslana a tam az vypis, ze to bylo uspesne nahrano) a 
      //echo "<p><b>Soubor $soubor_name byl nahrán na server. $nazev</b></p>";
    }
    else{
      echo"soubor se nepodarilo premistit do slozky pic/foto/";
    }
  }
  else{
    echo "Soubor je moc velký. Maximální povolená velikost je 300 kb.";
  }
}
else{
  echo "Nebyly vyplněny všechny údaje!";
}

?>
Ben
Profil *
a další věc, co musíš při tomto ošetřit, je zabránění duplicitních názvů souborů(např přidat čas k názvu uloženého souboru), odstranění nechtěných znaků z názvů nahrávaných souborů(diakritika, mezery, atd...)
n5ver
Profil
Tak duplicitní název nevadí, protože každý soubor má své id. K článku se obrázky vypisují podle položky kam, která představuje id článku, ke kterému obrázek patří.
Tori
Profil
n5ver:
každý soubor má své id
V databázi snad, ale ve filesystému ukládáte všechno do jednoho adresáře pod původními názvy.

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