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

1/5 (11 avis)

Vue 7 101 fois - Téléchargée 370 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
theboubourse Messages postés 41 Date d'inscription mercredi 30 janvier 2008 Statut Membre Dernière intervention 6 mars 2008
5 févr. 2008 à 10:02
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
cs_iubito Messages postés 629 Date d'inscription mercredi 3 juillet 2002 Statut Membre Dernière intervention 9 octobre 2006
21 avril 2004 à 07:03
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
Nifhell Messages postés 48 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 23 avril 2006
21 avril 2004 à 00:26
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!!
neoogosth Messages postés 1 Date d'inscription dimanche 24 août 2003 Statut Membre Dernière intervention 29 novembre 2003
29 nov. 2003 à 21:16
Très bon code Brav0!
cs_mrmonkey Messages postés 2 Date d'inscription samedi 21 juin 2003 Statut Membre Dernière intervention 29 octobre 2003
25 oct. 2003 à 17:17
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.