Autor Zpráva
Nuimi
Profil
Potřeboval bych si stáhnout soubor, ale nevím jak to udělat.
Takhle ho vypisuju
while($row = $proved_pdf -> fetch_assoc())
         {
         echo ("<form method=\"post\">
                   <tr>
                    <td>". $row['jmeno'] ."</td>
                    <td><input name=\"nazev\" type=\"hidden\" value=\"". $row['nazev'] ."\">". $row['nazev'] ."</td>
                    <td><input name=\"cesta\" type=\"hidden\" value=\"". $row['cesta'] ."\"><a target='_blank' href=". $row['cesta'] .">Zobraz</a></td>
                    <td><button type=\"submit\"  name=\"stazeni_zip\"><a href=". $row['cesta'] .">Stáhni</a></button></td>
                    <td><button type=\"submit\"  name=\"smazanicko_zip\"><img src=\"css/obrazky/x.png\" style=\"width:25px;height:25px\"></button></td>
                  </tr>
                 </form>");
         }
tohle mám u zobrazení a stažení
if(isset($_POST['stazeni_pdf']))
    {
      header('Content-type: application/pdf');
      header('Content-Disposition: attachment;filename="'.$_POST['nazev'].'"');
      readfile($_POST['cesta']);
    }
    
     if(isset($_POST['smazanicko_pdf']))
     {
      $probehni="SELECT cesta FROM soubory WHERE jmeno='".$_SESSION['jmeno']."' and nazev='".$_POST['nazev']."' and typ='pdf'";
      $provedeme=$db->query($probehni);
      while($row = $provedeme -> fetch_assoc())
      {
       unlink($row['cesta']);
       $db->query("DELETE FROM soubory WHERE jmeno = '".$_SESSION['jmeno']."'and nazev='".$_POST['nazev']."' and typ='pdf'and cesta='".$_POST['cesta']."'");
       echo("<script>window.location.href=\"\"</script>");
      }
     }
zobrazení funguje, ale stažení nefunguje, nevíte jak na to??
ehlo_f1re
Profil *
Asi by to chtělo rozvést toto "stažení nefunguje".
Nuimi
Profil
Stazeni nefunguje=neprovede se stazeni ale zobrazeni pdf
Martin2
Profil *
Nuimi:
readfile($_POST['cesta']);
and nazev='".$_POST['nazev']."'

Krása.

Stazeni nefunguje=neprovede se stazeni ale zobrazeni pdf
Můžeš zkusit jiný Content-type, třeba application/octet-stream
Keeehi
Profil
Nuimi:
neprovede se stazeni ale zobrazeni pdf
Ale to nemusí být špatně. Například já jako uživatel naprosto nenávidím, když se mi pdf stáhne místo toho, aby se zobrazilo v prohlížeči. Když ho chci stáhnout, kliknu na odkaz pravým tlačítkem a vyberu, že chci cíl odkazu uložit.

Pokud ale přesto chceš vynutit stažení, pak místo header('Content-type: application/pdf'); použij header('Content-Type: application/octet-stream');

readfile($_POST['cesta']);
Toto je bezpečnostní díra. Pokud pošlu správný požadavek, mohu si stáhnout třeba soubor s přihlašovacími údaji k databázi.

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: