[PHP] visualizza file pdf in una cartella e download

  • Creatore Discussione Creatore Discussione Imperor
  • Data di inizio Data di inizio

Imperor

Utente Attivo
25 Nov 2010
102
2
18
Roma
www.fcfclean.it
buona sera su questo sito ho trovato uno script che visualizza i file pdf funziona alla grande ma vorrei se possibile quando si clicca su un pdf si avvia il download non so come procedere chiedo aiuto grazie posto il vostro script ( non ho messo <? ) i file pdf sono in una cartella con il nome pdf
PHP:
function dir_list($directory = FALSE) {
  $dirs= array();
  $files = array();
  if ($handle = opendir("./" . $directory))
  {
    while ($file = readdir($handle))
    {
      if (is_dir("./{$directory}/{$file}"))
      {
        if ($file != "." & $file != "..") $dirs[] = $file;
      }
      else
      {
        if ($file != "." & $file != "..") $files[] = $file;
      }
    }
  }
  closedir($handle);

  reset($dirs);
  sort($dirs);
  reset($dirs);

  reset($files);
  sort($files);
  reset($files);

  echo "<strong>Cartelle:</strong>\n<ul>";
  while(list($key, $value) = each($dirs))
  {
    $d++;
    echo "<li><a href=\"{$value}\">{$value}/</a>\n";
  }
  echo "</ul>\n";
  echo "<strong>Files:</strong>\n<ul>";
  while(list($key, $value) = each($files))
  {
    $f++;
    echo "<li><a href=\"{$directory}{$value}\">{$value}</a>\n";
  }
  echo "</ul>\n";
  if (!$d) $d = "0";
  if (!$f) $f = "0";
  echo "Sono presenti <strong>{$d}</strong> cartelle e <strong>{$f}</strong> file(s).</strong>\n";
}
dir_list("/pdf/");
 
Ultima modifica di un moderatore:
Se la tua domando è:
Come forzare il downloaddi un file PDF invece di visualizzarlo, qui trovi la soluzione
https://www.mrw.it/php/forzare-download-file-php_7379.html

[mod]
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code.gif
quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box inserisci 2.png.JPG

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 
ciao sto provando a inserire il click per il download in modo che ogni pdf sia scaricabile sicuramente sto commettendo degli errori infatti non funziona se gentilmente qualcuno può aiutarmi non sono un programmatore ma mi piace crearmi le cose da solo ;)
PHP:
<body>
<?php
function dir_list($directory = FALSE) {
  $dirs= array();
  $files = array();
  if ($handle = opendir("./" . $directory))
  {
    while ($file = readdir($handle))
    {
      if (is_dir("./{$directory}/{$file}"))
      {
        if ($file != "." & $file != "..") $dirs[] = $file;
      }
      else
      {
        if ($file != "." & $file != "..") $files[] = $file;
      }
    }
  }
  closedir($handle);

  reset($dirs);
  sort($dirs);
  reset($dirs);

  reset($files);
  sort($files);
  reset($files);

  echo "<strong>Cartelle:</strong>\n<ul>";
  while(list($key, $value) = each($dirs))
  {
    $d++;
    echo "<li><a href=\"{$value}\">{$value}/</a>\n";
  }
  echo "</ul>\n";
  echo "<strong>Files:</strong>\n<ul>";
  while(list($key, $value) = each($files))
  {
    $f++;
    echo "<li><a href=\"{$directory}{$value}\">{$value}</a>\n";
  }
  echo "</ul>\n";
  if (!$d) $d = "0";
  if (!$f) $f = "0";
  echo "Sono presenti <strong>{$d}</strong> cartelle e <strong>{$f}</strong> file(s).</strong>\n";
}
dir_list("/pdf/");
?>
<a href="force-download.php?filename=miofile.pdf" target="_blank">Scarica il file</a>
</table>
 </tbody>
</table>
</body>
</html>
 
Ultima modifica di un moderatore:
Perchè non provi il codice del link che ti ho dato?
 
Ultima modifica:
ciao sto provando ma forse sbaglio qualcosa es: nella protetta.php appaiono i vari file pdf e il link per il download ( usando force-download.php ) sicuramente sto facendo dei casini :D sto tentando di fare questa cosa perchè mi serve x il lavoro
 
Se utilizzi un webserver apache puoi forzare il download anche da file .htaccess

Codice:
<FilesMatch "\.(?i:pdf)">
  ForceType application/octet-stream
  Header set Content-Disposition attachment
</FilesMatch>

Il file va inserito nella cartella contenente i file.

P.s. quando scrivi utilizza qualche virgola
 

Discussioni simili