- Home
- Categorie
- Coding e Sistemistica
- PHP
- script visualizza file
-
[php]
<?
$c = (isset($_GET['c'])) ? $_GET['c'] : '';// Nome della cartella
$car = '../file_corsi/'.$c.'/';function GetFile($car)
{
global $c;
// Se non è un cartella esco
if(!is_dir($car))
return 0;// Opendir è la funzione per aprire la cartella
$handle = opendir($car);// Ciclo la cartella
while (false !== ($files = readdir($handle)))
{
// Stampo i file
if ($files != '.' && $files != '..')
{
if(is_dir($car.$files))
$vc[] = $files;
else
$vf[] = $files;
}}
// Stampa dei file
echo 'Catelle:<br>';
for($i=0; $i<count($vc); $i++)
echo '<a href="1.php?c='.$c.'/'.$vc*.'">'.$vc*.'</a><br>';
echo 'File:<br>';
for($i=0; $i<count($vc); $i++)
echo $vf*.'<br>';
}// Richiamo La funzione
GetFile($car);
?>
[/php]
Si basa su questo tutorial Mostrare il contenuto di una cartella
-
grazie, sei stato gentilissimo, ma con il tuo script si ottiene lo stesso risultato che ho ottenuto io con il mio script, ti fa vedere i file nella root principale e le directory, ma non i file che si trovano all'interno di quelle directory.
-
Le cartelle hanno il collegamento... se ci clicchi vedi il contenuto
-
si lo so, il problema è che se clicco mi apre una nuova pagina con scritto:
Not Found
The requested URL /proxima/1.php was not found on this server.
-
sostituisci in <a href="1.php"> 1.php con il nome del tuo file
-
e se ci sono più file in quella directory?
-
quello che avrei voluto fare era questo:
auto/mercedes.jpg
auto/renault.gifmoto/honda.doc
moto/scooter/sh.xls
moto/yamaha.zipaeroplano.doc
elicottero.pdf
-
CIoè vuoi visualizzarli tutti in una pagina? mmm
è bello lungo come procedimento per il server...
-
ma non esistono script già pronti, cosa devo cercare su internet?
-
Già fatti non ne conosco...
-
era per non disturbarti però se invece ti va di aiutarmi, allora lo posso compilare con il tuo aiuto, però io di php non sono bravissimo, me la cavo un pò, ma questa cosa non riesco a farla
-
Mi sto confondendo con gli array x:x
-
ho trovato questo codice che funziona, solo che non mi mette i link ai file:
[PHP]
<?php
function list_elements($dir,$out)
{
$file_list = '';
$stack[] = $dir;
while ($stack)
{
$current_dir = array_pop($stack);
if ($dh = opendir($current_dir))
{
while (($file = readdir($dh)) !== false)
{
if ($file !== '.' AND $file !== '..')
{
$current_file = "{$current_dir}/{$file}";
if (is_file($current_file))
{
$file_list[] = "{$current_dir}/{$file}";
}
elseif (is_dir($current_file))
{
$stack[] = $current_file;
$dirs[]=$current_file; //l' array delle directory
//echo $current_file." corrisponde ad una directory<br>"; // questa
}
}
}
}
}
if ($out=='file')
return $file_list;
if ($out=='dir')
{
//$dirs=array_reverse($dirs);
return $dirs;
}
}$dirs=list_elements("../file_corsi",'dir'); // QUI gli dici che cartella vuoi leggere e ti restiuisce le directory
$files=list_elements("../file_corsi",'file'); // QUI gli dici che cartella vuoi leggere e ti restiuisce i filesecho "<pre>";
print_r($dirs);
print_r($files);?>
[/PHP]
-
[php]
<?
// Nome della cartella
$car = 'cartella/';function GetFile($car)
{
// Se non è un cartella esco
if(!is_dir($car))
return 0;// Opendir è la funzione per aprire la cartella
$handle = opendir($car);// Ciclo la cartella
while (false !== ($files = readdir($handle)))
{
// Stampo i file
if ($files != '.' && $files != '..')
{
if(is_dir($car.$files))
GetFile2($car.$files, &$vf);
else
$vf[] = $files;
}}
echo 'File:<br>';
for($i=0; $i<count($vf); $i++)
echo $vf*.'<br>';
}// Richiamo La funzione
GetFile($car);function GetFile2($dir, $vf)
{
$files1 = scandir($dir);
for($i=0; $i<count($files1); $i++)
if($files1* != '.' && $files1* != '..')
$vf[] = $files1*;
}
?>
[/php]
Unico problema riesce a prendere solo le immagini della prima sottocartella se ci sono cartelle nelle sottocartelle non prende i contenuti...
-
ho provato il tuo script ma mi da questo errore:
Fatal error: Call to undefined function: scandir() in /web/htdocs/vuvuvu.sito.it/home/corsi/file_corso_base.php on line 58
-
$car = 'cartella/';
lo hai modificato?
EDIT manca la funzione usi php 4 perciò aspetta che ne faccio uno che funziona
-
[php]
<?
// Nome della cartella
$car = 'cartella/';function GetFile($car)
{
// Se non è un cartella esco
if(!is_dir($car))
return 0;// Opendir è la funzione per aprire la cartella
$handle = opendir($car);// Ciclo la cartella
while (false !== ($files = readdir($handle)))
{
// Stampo i file
if ($files != '.' && $files != '..')
{
if(is_dir($car.$files))
GetFile2($car.$files, &$vf);
else
$vf[] = $files;
}}
echo 'File:<br>';
for($i=0; $i<count($vf); $i++)
echo $vf*.'<br>';
}// Richiamo La funzione
GetFile($car);function GetFile2($dir, $vf)
{
// Opendir è la funzione per aprire la cartella
$handle = opendir($dir);// Ciclo la cartella
while (false !== ($files = readdir($handle)))
if($files != '.' && $files != '..')
$vf[] = $files;
}
?>
[/php]
-
Ho fatto una modifica ora dovrebbe fuznionare in tutte le sottocartelle
[php]
<?
// Nome della cartella
$car = 'cartella/';function GetFile($car)
{
// Se non è un cartella esco
if(!is_dir($car))
return 0;// Opendir è la funzione per aprire la cartella
$handle = opendir($car);// Ciclo la cartella
while (false !== ($files = readdir($handle)))
{
// Stampo i file
if ($files != '.' && $files != '..')
{
if(is_dir($car.$files))
GetFile2($car.$files, &$vf);
else
$vf[] = $files;
}}
echo 'File:<br>';
for($i=0; $i<count($vf); $i++)
echo $vf*.'<br>';
}// Richiamo La funzione
GetFile($car);function GetFile2($dir, $vf)
{
// Opendir è la funzione per aprire la cartella
$handle = opendir($dir);// Ciclo la cartella
while (false !== ($files = readdir($handle)))
if($files != '.' && $files != '..')
if(is_dir($dir.'/'.$files))
GetFile2($dir.'/'.$files, &$vf);
else
$vf[] = $files;
}
?>Vedi se finalmente ci siamo
[/php]
-
grazie funziona però i nomi dei file non hanno il link
-
[php]
<?
// Nome della cartella
$car = 'cartella/';function GetFile($car)
{
// Se non è un cartella esco
if(!is_dir($car))
return 0;// Opendir è la funzione per aprire la cartella
$handle = opendir($car);// Ciclo la cartella
while (false !== ($files = readdir($handle)))
{
// Stampo i file
if ($files != '.' && $files != '..')
{
if(is_dir($car.$files))
GetFile2($car.$files, &$vf);
else
$vf[] = '<a href="'.$files.'">'.$files.'</a>';
}}
echo 'File:<br>';
for($i=0; $i<count($vf); $i++)
echo $vf*.'<br>';
}// Richiamo La funzione
GetFile($car);function GetFile2($dir, $vf)
{
// Opendir è la funzione per aprire la cartella
$handle = opendir($dir);// Ciclo la cartella
while (false !== ($files = readdir($handle)))
if($files != '.' && $files != '..')
if(is_dir($dir.'/'.$files))
GetFile2($dir.'/'.$files, &$vf);
else
$vf[] = '<a href="'.$dir.'/'.$files.'">'.$dir.'/'.$files.'</a>';
}
?>
[/php]