Autor Zpráva
Pávek
Profil
Dobrý den,

právě se peru s uploadem souboru na server, více-méně vše funguje, jen to nemohu sesmolit tak, abych byl spokojen...
Když do formuláře vložím soubor a dám nahrát na server, zkontroluje koncovku a když je v pořádku, soubor nahraje, ale když není tak to napíše chybu, jenže do databáze to zbytek zapíše.. (nemohu ten kód dát do takové podoby, aby to fungovalo).

Dále bych chtěl poradit, Jak nastavit maximální velikost uploadovaného souboru a aby si jí to také hlídalo a víc nepustilo.. (cca 60 mb).

Pak ještě maličkost, nemohu nastavit podporu koncovky PSD, AI, nevíte někdo, jaký má mít zápis??

Děkuji a přikládám můj dosavadní výtvor, zkoušel jsem různě kombinovat zápis do DB, ale vždy to pak začalo dělat blbosti..

 if ($ok)
 { 

 
  if ($_FILES["odkaz"]["name"] != false)
 {
$slozka = "./upload/"; // složka do které se uploadovaný soubor uloží

$soubor = $_FILES["odkaz"]["name"]; //zasílaný soubor

$podpora = array('application/msword','image/jpeg','application/pdf','application/psd','application/ai','application/tiff','application/vnd.oasis.opendocument.text','text/plain','application/vnd.ms-powerpoint','application/rar'); // povolené soubory (doc, jpg, pdf, psd, ai, tiff, odt, txt, ppt)

if (isset($soubor)) // pokud je soubor odeslán
  {
    if (in_array($_FILES["odkaz"]["type"],$podpora)) // je zkontrolován jeslti je podporován jeho upload
        { 
         if (is_uploaded_file($_FILES["odkaz"]["tmp_name"])) // ověří se jeho upload to dočasné složky
             {
              $name = $_FILES["odkaz"]["name"]; // zjištění jména souboru a na dalším řádku jeho přejmenování
              $rename = strtr($name,"áčďéěíňóřšťúůýž ÁČĎÉĚÍŇÓŘŠŤÚŮÝŽABCDEFGHIJKLMNOPRSTUVWXZ","acdeeinorstuuyz_acdeeinorstuuyzabcdefghijklmnoprstuvwxz");
              if (move_uploaded_file($_FILES["odkaz"]["tmp_name"], $slozka.$rename)) // ověření uploadu do zadané složky
               {
                echo "<br />Soubor \"".$name."\" byl uploadován a přejmenován na \"".$rename."\".<br /><img src=\"$slozka.$rename\">"; // výpis úspěšnosti
               }    
             } else {
                      echo "Nastala chyba! Soubor nebyl nahrán!"; // Pokud upload neproběhne správně vypíše se chyba
                      }
         }
        else {
                echo "Tento soubor není podporován!"; // Pokud není soubor podporován vypíše se chyba 
                }
}

}
         $vysledekkk = mysql_query("SELECT * FROM poradnik WHERE stav = 0 ORDER BY datum ASC ");
   $poradi=mysql_num_rows($vysledekkk);

 
        $vysledek8 = mysql_query("SELECT * FROM poradnik WHERE id_zakazka = '$id2_zakazka' ORDER BY id DESC");
      
      if (!$vysledek8)
      {
      echo 'Poslání SQL příkazu se nepodařilo, <br />
     Popis chyby: ', mysql_error($db_spojeni);
     exit();
      }
echo" <img src='/images/dokonceno.png' alt='Nákupní košík'>";
 
     while ($radek8 = mysql_fetch_array($vysledek8))
  {  $id2 = $radek8['id'];
  $zakazka = $radek8['zakazka'];
  $sql_prikaz=mysql_query("UPDATE poradnik SET odkaz='$rename', odkaz2='$odkaz2', stav=0 WHERE id='$id2'"); 
   
  if (!$sql_prikaz)
  {
      echo 'Poslání SQL příkazu se nepodařilo, <br />
 Popis chyby: ', mysql_error();
 exit();
 } else {
 echo "
 
 
 <font color='green'><b>Děkujeme, Vaše zakázka \"$zakazka\" č. $id2_zakazka byla přidána do pořadníku, nyní je před Vámi $poradi zakázek. </b><br />
  Budeme Vás pravidelně informovat o stavu Vaší zakázky. <br />
 </font><br /><br /> ";
       } 
        } echo "<a href=' /index.php' title='Zpět'>Na hlavní stránku.</a>";}

Kdyby měl někdo nějaký nápad, či návrh, jak toto vyřešit, děkuji za každou radu..
Enko
Profil
Celé téma je komplexně hezky a efektivně rozebráno na blogu Jakuba Vrány Určitě nikdy neukládej originální název souboru, byť s odstraněnou diakritikou, kvůli duplictám. Název změň třeba takto:
      $jmeno = uniqid('',true);
      $koncovka = pathinfo($_FILES["image"]["name"], PATHINFO_EXTENSION);
      $cislo = 0;
      $novejmeno = $jmeno;
      while(file_exists("./upload/images/$novejmeno.$koncovka")){
        $novejmeno = $jmeno.$cislo;
        $cislo++;
      }
      $novejmeno = $novejmeno.".".$koncovka;
Na uploadování souborů si vyhraď zvlášní složku určenou jenom pro upload a zakaž v ní spouštění PHP skriptů (přes .htaccess). Až projedeš ten článek, tak to zkus a úřípadně se ptej, co nebude jasné.

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: