A voir également:
- [PHP]Lister les fichiers de plusieurs dossier
- Dossier appdata - Guide
- Renommer plusieurs fichiers - Guide
- Mettre un mot de passe sur un dossier - Guide
- Wetransfer gratuit fichiers lourd - Guide
- Explorateur de fichiers - Guide
4 réponses
Thamior
Messages postés
264
Date d'inscription
lundi 11 février 2008
Statut
Membre
Dernière intervention
18 mars 2014
47
18 févr. 2008 à 18:28
18 févr. 2008 à 18:28
Bonjour,
J'ai eu aussi besoin de naviguer sur mon ftp avec en passant par une appli PHP.
Je te propose le script dont je me suis servis et qui est très bien :
<style type="text/css">
<!--
body,.mybox {
font-family:'Lucida console';
font-size:12px;
color:#000000;
background:#DDDDDD;
}
.mybox {
background:#FFFFFF;
width:100px;
}
-->
</style>
<?php
if(isset($page) ||empty($page))
{
//==========================================================//
// TAILLE DU DOSSIER (ET SOUS-DOSSIERS)
//==========================================================//
function dirsize($path,$recursive=true){
$result=0;
if(!@is_dir($path) || !@is_readable($path)) return -1;
$fd=@dir($path); if(!$fd) return -1;
$tmo=time();
while($file=$fd->read()){
if(substr($file,-1,1)!='.'){
if(@is_dir($path.'/'.$file.'/'))
$result+=$recursive?dirSize($path.'/'.$file.'/'):0;
else $result+=filesize($path.'/'.$file);
}
if(time()-$tmo>=2){ // TimeOut de 2 secondes
$fd->close();
return -1;
}
}
$fd->close();
return $result;
}
//==========================================================//
// UNITE DE LA TAILLE
//==========================================================//
function getfilesize($size){
if(!isset($size) || $size<0) return 'not found';
$units=array('',' Ko',' Mo',' Go',' To');
for($i=0;$size>1024;$i++) $size/=1024;
return round($size,2).$units[$i];
}
//==========================================================//
// TRAITEMENT DU POST
//==========================================================//
$lstd=Array(); // Tableau des dossiers
$lstf=Array(); // Tableau des fichiers
$lsts=Array(); // Tailles des fichiers
$myd=@$_POST['myd']; // Sélection du dossier
$myf=@$_POST['myf']; // Sélection du(des) fichier(s)
if((substr($myd,-1,1)=='.')&&(substr($myd,-2,2)!='..')) $myd='';
@chdir($myd);
echo '<b>'.getcwd().'</b> ('.@getfilesize(dirsize(getcwd())).')<br/>';
if($handle=@opendir(getcwd()))
while(($file=@readdir($handle))!==false)
if((@is_dir($file))||($file=='..')){
$lstd[]=getcwd().'/'.$file;
}else{
$lstf[]=$file;
$lsts[]=@getfilesize(filesize(getcwd().'/'.$file));
}
@closedir($handle);
//==========================================================//
// FORMULAIRE HTML
//==========================================================//
echo '<form name="mybrowse" method="post">';
echo '<select name="myd" size="20" class="mybox" '.
'onDblClick="mybrowse.submit();">';
if(strlen(getcwd())<4){
if('A:\\'!=getcwd())
echo '<option value="A:">A:</option>';
for($x=2;$x<26;$x++){
$unit=chr(65+$x).':';
if(@is_dir($unit) && $unit.'\\'!=getcwd())
echo '<option value="'.$unit.'">'.$unit.'</option>';
}
}
for($x=0;$x<count($lstd);$x++)
echo '<option value="'.$lstd[$x].'">'.basename($lstd[$x]).'</option>';
echo '</select>';
echo '<select name="myf[]" size="20" class="mybox" '.
'style="width:300px;" multiple>';
for($x=0;$x<count($lstf);$x++)
echo '<option value="'.$lstf[$x].'">'.$lstf[$x].' ('.$lsts[$x].')</option>';
echo '</select>';
echo '<br/>'.
'<noscript>'.
'<input type="submit" value=" LISTER " class="mybox"/>'.
'</noscript>'.
'</form>';
?>
Thamior.
J'ai eu aussi besoin de naviguer sur mon ftp avec en passant par une appli PHP.
Je te propose le script dont je me suis servis et qui est très bien :
<style type="text/css">
<!--
body,.mybox {
font-family:'Lucida console';
font-size:12px;
color:#000000;
background:#DDDDDD;
}
.mybox {
background:#FFFFFF;
width:100px;
}
-->
</style>
<?php
if(isset($page) ||empty($page))
{
//==========================================================//
// TAILLE DU DOSSIER (ET SOUS-DOSSIERS)
//==========================================================//
function dirsize($path,$recursive=true){
$result=0;
if(!@is_dir($path) || !@is_readable($path)) return -1;
$fd=@dir($path); if(!$fd) return -1;
$tmo=time();
while($file=$fd->read()){
if(substr($file,-1,1)!='.'){
if(@is_dir($path.'/'.$file.'/'))
$result+=$recursive?dirSize($path.'/'.$file.'/'):0;
else $result+=filesize($path.'/'.$file);
}
if(time()-$tmo>=2){ // TimeOut de 2 secondes
$fd->close();
return -1;
}
}
$fd->close();
return $result;
}
//==========================================================//
// UNITE DE LA TAILLE
//==========================================================//
function getfilesize($size){
if(!isset($size) || $size<0) return 'not found';
$units=array('',' Ko',' Mo',' Go',' To');
for($i=0;$size>1024;$i++) $size/=1024;
return round($size,2).$units[$i];
}
//==========================================================//
// TRAITEMENT DU POST
//==========================================================//
$lstd=Array(); // Tableau des dossiers
$lstf=Array(); // Tableau des fichiers
$lsts=Array(); // Tailles des fichiers
$myd=@$_POST['myd']; // Sélection du dossier
$myf=@$_POST['myf']; // Sélection du(des) fichier(s)
if((substr($myd,-1,1)=='.')&&(substr($myd,-2,2)!='..')) $myd='';
@chdir($myd);
echo '<b>'.getcwd().'</b> ('.@getfilesize(dirsize(getcwd())).')<br/>';
if($handle=@opendir(getcwd()))
while(($file=@readdir($handle))!==false)
if((@is_dir($file))||($file=='..')){
$lstd[]=getcwd().'/'.$file;
}else{
$lstf[]=$file;
$lsts[]=@getfilesize(filesize(getcwd().'/'.$file));
}
@closedir($handle);
//==========================================================//
// FORMULAIRE HTML
//==========================================================//
echo '<form name="mybrowse" method="post">';
echo '<select name="myd" size="20" class="mybox" '.
'onDblClick="mybrowse.submit();">';
if(strlen(getcwd())<4){
if('A:\\'!=getcwd())
echo '<option value="A:">A:</option>';
for($x=2;$x<26;$x++){
$unit=chr(65+$x).':';
if(@is_dir($unit) && $unit.'\\'!=getcwd())
echo '<option value="'.$unit.'">'.$unit.'</option>';
}
}
for($x=0;$x<count($lstd);$x++)
echo '<option value="'.$lstd[$x].'">'.basename($lstd[$x]).'</option>';
echo '</select>';
echo '<select name="myf[]" size="20" class="mybox" '.
'style="width:300px;" multiple>';
for($x=0;$x<count($lstf);$x++)
echo '<option value="'.$lstf[$x].'">'.$lstf[$x].' ('.$lsts[$x].')</option>';
echo '</select>';
echo '<br/>'.
'<noscript>'.
'<input type="submit" value=" LISTER " class="mybox"/>'.
'</noscript>'.
'</form>';
?>
Thamior.
Ton code marche à merveille mais sais tu comment je pourrais faire pour, en double cliquant sur un fichier, inscrire son nom à la suite du chemin qui s'affiche à l'aide de " echo '<b>'.getcwd().'</b> ('.@getfilesize(dirsize(getcwd())).')<br/>'; "
Merci d'avance
Merci d'avance