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

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

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.