Auteur : Hell
| Version : 11/01/2006 | | |
| | <?php
function lister($ chemin )
{
echo ' <u>Contenu du dossier ' . $ chemin . ' </u><br><blockquote> ' ;
$ nom_repertoire = $ chemin ;
$ pointeur = opendir($ nom_repertoire );
while ($ fichier = readdir($ pointeur ))
{
if (($ fichier ! = ' . ' ) & & ($ fichier ! = ' .. ' ))
{
if (is_dir($ nom_repertoire . ' / ' . $ fichier ))
{
echo ' <blockquote> ' ;
lister($ nom_repertoire . ' / ' . $ fichier );
echo ' </blockquote> ' ;
}
else
{
echo $ fichier . ' <br> ' ;
}
}
}
echo ' </blockquote><u>Fin du dossier ' . $ nom_repertoire . ' </u><br> ' ;
closedir($ pointeur );
}
?>
|
|
Auteur : Sub0
| Version : 16/01/2006 | | |
| |
Merci aux membres du forum pour m'avoir aider à réaliser ce formulaire.
<style type = " text / css " >
body ,.mybox {
font-family : ' Lucida console ' ;
font-size : 12px ;
color : # 000000 ;
background : # DDDDDD ;
}
.mybox {
background : # FFFFFF ;
width : 100px ;
}
-- >
</style>
<?php
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 ){
$fd ->close ();
return - 1 ;
}
}
$fd ->close ();
return $ result ;
}
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 ] ;
}
$ lstd = Array ();
$ lstf = Array ();
$ lsts = Array ();
$ myd = @ $ _POST [ ' myd ' ] ;
$ myf = @ $ _POST [ ' myf ' ] ;
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 );
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> ' ;
?>
|
|
Auteur : NiHiL
| Version : 03/07/2006 | | |
| | Il s'agit d'un script en PHP qui remplace les pages générées par Apache dans une arborescence web destinée au stockage de fichiers, par une interface graphique beaucoup plus agréable et personnalisable.
Fonction et caractéristiques :
- Skin une arborescence http dédié au stockage de fichiers
- Modifications & Intégration très simple du design
- Player intégré pour les vidéos, les flashs, les flv, les mp3 les fichiers éditables et les images
- Gestion des Exifs par le player
- Affichage et Highlight de la sources des fichiers PHP dans le player
- Module d'administration pour uploader/supprimer des fichiers et créer des dossiers
- Possibilité de créer des comptes pour uploader
- Possibilité de ne pas afficher des fichiers ou des répertoires
- URLs semi réécrite pour une meilleure visualisation et un meilleur référencement sur les moteurs de recherche
- Création d'avatar dynamique automatique via l'administration
- XHTML 1.1 & CSS valid
|
Auteur : fouz
| Version : 16/01/2006 | | |
| |
Fonction limitée niveau puissance, pas plus de 20 mo de fichiers.
require_once(" zip . lib . php " );
$ fichier_zip = " zip . zip " ;
$zip = new zipfile;
$ path = " Compression " ;
set_time_limit (1000);
function zipDir($ path , & $ zip )
{
if (! is_dir($ path )) return ;
if (! ($ dh = @ opendir($ path ))) {
echo(" < b > ERREUR : Une erreur s ' est produite sur " . $ path . " < / b > < br / > " );
return ;
}
while ($ file = readdir($ dh )) {
if ($ file = = " . " | | $ file = = " . . " ) continue ;
if (is_dir($ path . " / " . $ file )) {
zipDir($ path . " / " . $ file , $ zip , $ i );
} elseif (is_file($ path . " / " . $ file )) {
$zip ->addFile (file_get_contents($ path . " / " . $ file ), $ path . " / " . $ file );
}
}
}
}
zipDir($ path , $ zip );
$ filezipped = $zip ->file ();
$ open = fopen($ fichier_zip , " w " );
fwrite($ open , $ filezipped );
fclose($ open );
|
|
| |
Paramètres de la fonction : $fichier_source, $fichier_cible (l'adresse du fichier source, et l'adresse du fichier cible).
Ce code permet par exemple de récupérer le code HTML généré par un fichier PHP distant.
Copie d'un fichier distant en local | function copie_fichier_distant($ fichier_source , $ fichier_cible ) {
$ fichierouvert = fopen ($ fichier_source , " r " );
$ contenu = " " ;
while (! feof($ fichierouvert )) {
$ contenu . = fread($ fichierouvert , 8192);
}
fclose ($ fichierouvert );
$ fichierouvert = fopen ($ fichier_cible , " w + " );
if ( ! fwrite($ fichierouvert , $ contenu )) {
echo " Impossible d ' écrire dans le fichier ( $ filename ) " ;
exit;
}
fclose ($ fichierouvert );
}
copie_fichier_distant(' http://www.google.fr/intl/fr_fr/images/logo.gif ' , ' ./images/logo_google.gif ' );
|
|
| |
Ici, nous ouvrons un fichier distant, en lisons le contenu, et l'enregistrons en local.
Pour la création et l'écriture dans un fichier, pensez bien à vérifier que vous avez les droits requis dans le répertoire donné et sur le fichier.
<?php
$ fichier = " http : / / www . google . fr / intl / fr_fr / images / logo . gif " ;
$ fichierouvert = fopen ($ fichier , " r " );
$ contenu = " " ;
while (! feof($ fichierouvert )) {
$ contenu . = fread($ fichierouvert , 8192 );
}
fclose ($ fichierouvert );
$ dirname = " " ;
$ filename = " carte . gif " ;
$ fichierouvert = fopen ($ dirname . $ filename , " w + " );
if ( ! fwrite($ fichierouvert , $ contenu )) {
echo " Impossible d ' écrire dans le fichier ( $ filename ) " ;
exit;
}
fclose ($ fichierouvert );
?>
|
|
Auteur : Swoög
| Version : 03/07/2006 | | |
| | Crée un répertoire et éventuellement ses dossiers parents | function recur_mkdir($ path )
{
$ path = preg_split(' <([/\\])> ' , $ path , - 1, PREG_SPLIT_DELIM_CAPTURE)
$ curr = ' ' ;
for ($ i = 0; $ i < count($ path ); $ i + = 2)
{
$ curr . = $ path [ $ i ] . $ path [ $ i + 1] ;
if (! is_dir($ curr ) & & ! mkdir($ curr )) return false ;
}
return true ;
}
|
|
| | Cette classe permet de charger (normalement) simplement un ou plusieurs fichiers, supprimer, créer des dossiers sur un serveur distant ou local. <?php
define (" FTP_CONNECTSSL_FAILED " , " < b > Erreur critique : < / b > connection au serveur
impossible . Vérifiez si l ' OpenSSL est installé . " );
define (" FTP_CONNECT_FAILED " , " < b > Erreur critique : < / b > connection au serveur imp
ossible . " );
define (" LOGIN_FAILED " , " < b > Erreur critique : < / b > impossible de se connecter , vér
ifiez les paramètres d ' accès . " );
define (" NO_FILE_UPLOADED " , " < b > Erreur : < / b > le fichier n ' a pas été téléchargé su
r le serveur . " );
define (" ERR_FILESIZEINI " , " < b > Erreur : < / b > la taille d ' un des fichiers dépasse l
a limite fixée dans votre php . ini . " );
define (" ERR_FILESIZE " , " < b > Erreur : < / b > la taille d ' un des fichiers dépasse la l
imite fixé par le formulaire . " );
define (" ERR_PARTIALDL " , " < b > Erreur : < / b > un des fichiers a été téléchargé partie
llement dans le dossier temporaire . " );
define (" ERR_NOFILEDL " , " < b > Erreur : < / b > un des fichiers n ' a pas été téléchargé d
ans le dossier temporaire " );
define (" ERR_NOFOLDER " , " < b > Erreur : < / b > dossier temporaire introuvable . " );
define (" ERR_CANTWRITE " , " < b > Erreur : < / b > impossible d ' écrire le fichier dans le
dossier temporaire . " );
define (" CANT_CHANGEDIR " , " < b > Erreur : < / b > impossible d ' entrer dans le dossier " )
;
define (" CANT_CREATEDIR " , " < b > Erreur : < / b > impossible de créer le dossier demandé
. " );
define (" SSL_NOTINSTALLED " , " < b > Erreur : < / b > l ' ouverture sécurisée SSL n ' est pas
disponible . " );
define (" CANT_DELETEFILE " , " < b > Erreur : < / b > impossible de supprimer le fichier sp
écifié . " );
define (" INVALID_FILE " , " < b > Erreur : < / b > fichier spécifié invalide ou introuvable
. " );
define (" NO_DELETE " , " < b > Erreur : < / b > fichier non supprimé . Il se peut qu ' aucun d
ossier n ' ait été spécifié . " );
define (" CANT_CHMOD " , " < b > Erreur : < / b > impossible de changer le chmod du dossier /
fichier spécifié . " );
define (" CANT_RENAME " , " < b > Erreur : < / b > impossible de changer le nom du dossier s
pécifié . " );
define (" CANT_LIST " , " < b > Erreur : < / b > impossible de lister le répertoire . " );
class FileManager {
var $ envars ;
var $ openftp ;
var $ file_destination = ' . ' ;
var $ force ;
function setftpvars($ server , $ username , $ userpass , $ mode = " ASCII " ) {
$this ->envars [ ' ftp_server ' ] = $ server ;
$this ->envars [ ' ftp_pass ' ] = $ userpass ;
$this ->envars [ ' ftp_login ' ] = $ username ;
$this ->envars [ ' ftp_transfert ' ] = constant(' FTP_ ' . $ mode );
}
function setftpdir($ dir , $ force = false ) {
$this ->file_destination = $ dir ;
$this ->force = $ force ;
}
function createdir($ dir , $ chmod = 0777 , $ dest = false ) {
if (! is_dir($ dir ) & & $ dest = = false ) {
@ mkdir($ dir , $ chmod ) or die (CANT_CREATDIR);
}
elseif (! is_dir($ dir ) & & $ dest ! = false ) {
@ ftp_mkdir($this ->openftp , $ dir ) or die (CANT_CREATDIR);
}
}
function openftp($ sslopen = false ) {
if ($ sslopen = = true ) {
if (! function_exists(" ftp_ssl_connect " )) {
echo SSL_NOTINSTALLED;
exit;
}
if (! $this ->openftp = @ ftp_ssl_connect($this ->envars [ ' ftp_server ' ] )) {
echo FTP_CONNECTSSL_FAILED;
exit;
}
} else {
if (! $this ->openftp = @ ftp_connect($this ->envars [ ' ftp_server ' ] )) {
echo FTP_CONNECT_FAILED;
exit;
}
}
@ ftp_login($this ->openftp , $this ->envars [ ' ftp_login ' ] , $this ->envars [ ' ftp_
pass ' ] ) or die (LOGIN_FAILED);
}
function uploadfiles($ inputname = " " , $ specialftp = " " ) {
if (! empty($ _FILES [ $ inputname ] )) {
foreach ($ _FILES [ $ inputname ] [ ' name ' ] As $ key = > $ file ) {
if ($ file ! = ' ' ) {
$ lastfile = ' (Fichier concerné: <b> ' . htmlspecialchars($ file ). ' </
b>)<br> ' ;
switch ($ _FILES [ $ inputname ] [ ' error ' ] [ $ key ] ) {
case 1 :
echo ERR_FILESIZEINI. $ lastfile ;
exit;
case 2 :
echo ERR_FILESIZE. $ lastfile ;
exit;
case 3 :
echo ERR_PARTIALDL. $ lastfile ;
exit;
case 4 :
echo ERR_NOFILEDL. $ lastfile ;
exit;
case 6 :
echo ERR_NOFOLDER. $ lastfile ;
exit;
case 7 :
echo ERR_CANTWRITE. $ lastfile ;
exit;
default : break ;
}
$ filename = basename($ _FILES [ $ inputname ] [ ' name ' ] [ $ key ] );
if (empty($ specialftp )) {
if ($this ->force = = true ) $this ->createdir ($this ->file_destina
tion);
if (! $ is_moved = @ move_uploaded_file($ _FILES [ $ inputname ] [ ' tmp_
name ' ] [ $ key ] , $this ->file_destination . ' / ' . $ filename )) {
echo NO_FILE_UPLOADED. $ lastfile ;
}
} else {
$ fp = fopen($ _FILES [ $ inputname ] [ ' tmp_name ' ] [ $ key ] , ' r ' );
if ($this ->force = = true ) $this ->createdir ($this ->file_destina
tion, 0777 , true );
@ ftp_chdir($this ->openftp , $this ->file_destination ) or die(CAN
T_CHANGEDIR. $this ->file_destination );
if (! $ is_moved = @ ftp_fput($this ->openftp , $ filename , $ fp , $ th
is- > envars[ ' ftp_transfert ' ] )) {
echo NO_FILE_UPLOADED. $ lastfile ;
}
else {
fclose($ fp );
}
}
}
}
}
}
function deletefile($ file , $ specialftp = " " ) {
$ lastfile = (! is_array($ file )) ? ' (Fichier concerné: <b> ' . htmlspecialchar
s($ file ). ' </b>)<br> ' : ' (Tableau de fichier) ' ;
if (! is_array($ file ) & & is_file($this ->file_destination . ' / ' . $ file )) {
if (empty($ specialftp )) {
return @ unlink($this ->file_destination . ' / ' . $ file ) or die (CANT_DELETEFIL
E. $ lastfile );
} else {
return @ ftp_delete($this ->openftp , $this ->file_destination . ' / ' . $ file ) or
die (CANT_DELETEFILE. $ lastfile );
}
}
elseif (is_array($ file )) {
foreach ($ file as $ dir = > $ to_delete ) {
$ lastfile = ' (Fichier concerné: <b> ' . htmlspecialchars($ to_delete ). ' </b>
)<br> ' ;
$ dir = (is_numeric($ dir )) ? $this ->file_destination : $ dir ;
if (is_file($ dir . ' / ' . $ to_delete )) {
if (empty($ specialftp )) {
@ unlink($ dir . ' / ' . $ to_delete ) or die (CANT_DELETEFILE. $ lastfile );
} else {
@ ftp_delete($this ->openftp , $ dir . ' / ' . $ to_delete ) or die (CANT_DELE
TEFILE. $ lastfile );
}
} else {
echo INVALID_FILE. $ lastfile ;
}
}
}
else {
echo NO_DELETE. $ lastfile ;
}
}
function changechmod($ filedir , $ chmod , $ specialftp = " " ) {
if (empty($ specialftp )) {
@ chmod($ filedir , $ chmod ) or die (CANT_CHMOD);
}
else {
@ ftp_chmod($this ->openftp , $ filedir , $ chmod ) or die (CANT_CHMOD);
}
}
function changename($ dirfile , $ name , $ specialftp = " " ) {
if (empty($ specialftp )) {
@ rename($ dirfile , $ name ) or die (CANT_RENAME);
}
else {
@ ftp_rename($this ->openftp , $ dirfile , $ name ) or die (CANT_RENAME);
}
}
function listrepertory($ repertory , $ specialftp = " " ) {
if (empty($ specialftp )) {
if ($ handle = @ opendir($ repertory )) {
while (false ! = = ($ file = @ readdir($ handle ))) {
if ($ file ! = " . " & & $ file ! = " . . " ) {
if (is_file($ file )) $ prefix = ' (fichier) ' ;
if (is_dir($ file )) $ prefix = ' (dossier) ' ;
echo ' - ' . $ file . $ prefix . ' <br> ' ;
}
}
closedir($ handle );
} else echo CANT_LIST;
}
else {
$ contents = ftp_nlist($this ->openftp , ' . ' );
var_dump($ contents );
foreach ($ contents AS $ file ) {
if (is_file($ file )) $ prefix = ' Type: fichier, nom: ' ;
if (is_dir($ file )) $ prefix = ' Type: dossier, nom: ' ;
echo $ prefix . $ file . ' <br> ' ;
}
}
}
}
?>
|
|
| | Voici une façon très simple pour gérer les uploads.
L'upload, c'est le transfert de fichiers de votre disque dur vers l'Internet.
Habituellement, pour faire ce type de manipulation, on passe par le ftp. Ce qui veut dire dans le code : une connexion par ftp, des codes avec des fonctions ftp.
Ici on va se servir des formulaires pour exécuter des fonctions autres que celles inclusent dans la bibliothèque FTP.
|
| | Ce code permet d'avoir un compteur à l'aide d'un fichier texte (.txt). Pour l'utiliser vous devez juste insérer le code dans votre page.
Si vous utilisez plusieurs compteurs pour des pages différentes, il faut nommer de façon différente le fichier.
|
Auteur : Julp
| Version : 22/08/2006 | | |
| | Les fichiers peuvent être des répertoires. @param $ftpid la connexion au serveur FTP (résultat de la fonction ftp_connect)
@param $file nom du fichier à supprimer
@return vrai si la suppression a eu lieu sinon faux
|
function delete_recursive($ ftpid , $ file ) {
if (ftpid) {
if (@ ftp_chdir($ ftpid , $ file )) {
$ contents = ftp_nlist($ ftpid , ' . ' );
if (isset($ contents ) & & is_array($ contents ) & & count($ contents ) > 0) {
$ pwd = ftp_pwd($ ftpid );
foreach ($ contents as $ v ) {
if (! delete_recursive($ ftpid , " $ pwd / $ v " )) {
return FALSE ;
}
}
}
unset($ contents );
return ftp_rmdir($ ftpid , $ file );
} else {
return ftp_delete($ ftpid , $ file );
}
}
return FALSE ;
}
|
Exemple d'utilisation | $ ftpid = ftp_connect(' ftp.mon_domaine.com ' );
ftp_login($ ftpid , ' login ' , ' password ' );
ftp_pasv($ ftpid , TRUE );
delete_recursive($ ftpid , ' /tests/un_répertoire ' );
delete_recursive($ ftpid , ' /tests/un_fichier ' );
ftp_close($ ftpid );
|
|
| |
Classe générique permettant d'utiliser les fichiers beaucoup plus simplement qu'avec les fonctions de base de PHP, d'autant plus qu'elle écrit les données au format PHP (ce qui permet de les récupérer plus facilement).
|
Consultez les autres pages sources
|
|