Fonction bcopy() pour copier n'importe quel type de fichier sur tous les fournisseurs d'accés (free, multimania)

Soyez le premier à donner votre avis sur cette source.

Vue 6 926 fois - Téléchargée 331 fois

Description

J'ai développé cette fonction, équivalente à copy(), afin d'uploader très simplement n'importe quel type de fichier sur n'importe quel fournisseur d'accés.
le "b" de "bcopy" signifie que les fichiers sont copiés en mode binaire, ainsi, vous pourrez copier des fichier ZIP ou bien JPEG sans gros problèmes.

INSTRUCTIONS :

Booléen bcopy(),

- Argument 1 : obligatoire, vous devez spécifier le fichier local sur votre machine a copier.
- Argument 2 : obligatoire, vous devez spécifier le nom du fichier à écrire sur le serveur distant.
- Argument 3 : facultatif, vous devez spécifier la taille MAX du fichier à copier.
Si vous ne l'indiquez pas, ou que vous indiquez 0, le programme prendra par défaut la valeur limite de 2097152 octets. (2mo)

Si la fonction est exécutée avec succés, un tableau d'information est renvoyé, les variables sont :

- LocalName : Nom du fichier local,
- RemoteName : Nom du fichier copié,
- Size : Taille du fichier local (et copié),
- Ext : extention du fichier local.

Bon upload ;)

Source / Exemple :


function bcopy($LocalFile, $RemoteFile, $MaxSize = FALSE)
	{
		// Vérifiaction de la présence du fichier à copier //
		file_exists($LocalFile)
		or die("<b>Erreur : </b>le fichier local '".$LocalFile."' n'existe pas.");
		
		// Détection de l'extention du fichier //
		$Ext = substr(strrchr($LocalFile, '.'), 1);
		
		// Détermination de la taille en Octets du fichier local //
		$Size = filesize($LocalFile);
		
		/* 

    • Si la taille maximum n'est pas indiquée ou est égale à 0,
    • la taille maximale est fixée par défaut à 2097152 Octets (2Mo).
  • /
if(!$MaxSize) { $MaxSize = 2097152; } else { if($Size>$MaxSize) { die("<b>Erreur : </b>la taille du fichier est supérieure à la taille autorisée."); } } // Création du tableau d'informations de sortie // $File_Infos = array("LocalName" => $LocalFile, "RemoteName" => $RemoteFile, "Size" => $Size, "Ext" => $Ext); // Ouverture du fichier local // $OpenLocal = fopen($LocalFile, "rb"); if($OpenLocal) { // lecture entière du fichier // $LocalFileContent = fread($OpenLocal, $Size); } else { fclose($OpenLocal); die("<b>Erreur : </b>impossible d'ouvrir le fichier local '".$LocalFile."."); } // Fermeture du fichier local // fclose($OpenLocal); // Ouverture du fichier distant, si ce fichier existe, il sera écrasé // $OpenRemote = fopen($RemoteFile, "wb"); if($OpenRemote) { // Ecriture du fichier local dans le fichier distant // if(fwrite($OpenRemote, $LocalFileContent)) { fclose($OpenRemote); return ($File_Infos); } } else { fclose($OpenRemote); die("<b>Erreur : </b>impossible d'ouvrir le fichier distant '".$RemoteFile."."); } }

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
41
Date d'inscription
mercredi 30 janvier 2008
Statut
Membre
Dernière intervention
6 mars 2008

bonjour je cherche + ou - la même chose je souhaiterai que le client puisse voir un fichier qui se trouve sur le serveur en lecture seule
Messages postés
629
Date d'inscription
mercredi 3 juillet 2002
Statut
Membre
Dernière intervention
9 octobre 2006

oui avec leur nouvelle archi g vu l'autre jour jusqu'à 2 Mo d'upload :) et maintenant ça marche en php4. Je sais pas si ils ont rebaissé la max_size
Messages postés
48
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
23 avril 2006

Slut BeB3RePHPLover!!
G un peu modifier ton code pour donner un truc pour que ça marche sous free sans rien renommer en .php3 et qui controle vraiment le type du fichier et non pas uniquement son extension.

alors pour ceux que ça interesse sachez que c possible d'uploader ous free!!
Messages postés
1
Date d'inscription
dimanche 24 août 2003
Statut
Membre
Dernière intervention
29 novembre 2003

Très bon code Brav0!
Messages postés
2
Date d'inscription
samedi 21 juin 2003
Statut
Membre
Dernière intervention
29 octobre 2003

c'est où qu'on rentre le login le mot de passe ect ???
j'avous que ne comprend rien a ce code
Afficher les 11 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.