Upload de plus de 200ko sur free

Soyez le premier à donner votre avis sur cette source.

Vue 9 549 fois - Téléchargée 624 fois

Description

J'ai pus voir en cherchant sur le forum que beaucoup (moi y comprit) avaient des problèmes pour l'upload de fichier sur les serveurs de Free. Des solutions ont été proposées, mais celles qui marchent (utilisant en général la fonction copy) ne prennent pas les fichiers de plus de 200Ko.
J'ai donc tenté de réaliser une fonction qui permet toute taille de fichier. Son principe est simple : uploader des parties de 200Ko puis les rassembler sur le serveur.
Il faut juste prendre du temps et le logiciel Split.
Si vous trouvé des optimisations, merci de me les faire parvenir.
P.S : Le code n'est pas super optimisé et le design est franchement à revoir.

Source / Exemple :


<?if(!isset($_POST['nombre']))
	{echo "<form action=\"index.php\" method=\"POST\" enctype=\"multipart/form-data\">
	<center><p>Entrez Le nom du fichier compressé :</p>
	<p><input type=\"text\" name=\"nomf\"></p>
	<p>Entrez le nombre de parties :</p>
	<p><input type=\"text\" name=\"nombre\"></p>
	<p>Quel est le 1° fichier ?</p>
	<p><input type=\"file\" name=\"nom\"></p>
	<input type=\"submit\" value=\"Envoyer\" enctype=\"multipart/form-data\"></center>
</form>";
	}
else
	{$nombre=$_POST['nombre'];
	if(isset($_POST['cmpt']))
		$cmpt=$_POST['cmpt'];
	else
		$cmpt=0;
	$nomf=$_POST['nomf'];
	// Pour écrire d'abord
	$f = gzopen($nomf.$cmpt.".gz", "wb"); // on ouvre le fichier pour écriture avec un taux de compression de 9
	$nom=$_FILES['nom']['tmp_name'];
	$f2=fopen($nom,"rb");
	$ascii=1;
	while(!feof($f2))
		{$ascii=fgetc($f2);
		gzwrite($f, $ascii); // on écrit dans le fichier
		}
	gzclose($f); // on ferme enfin le fichier
	if($cmpt<$nombre-1)
		{echo "<form action=\"index.php\" method=\"POST\" enctype=\"multipart/form-data\">
	<center><p><input type=\"hidden\" name=\"nombre\" value=\"".$nombre."\"></p>
	<p><input type=\"hidden\" name=\"cmpt\" value=\"".++$cmpt."\"></p>
	<p><input type=\"hidden\" name=\"nomf\" value=\"".$nomf."\"></p>
	<p>Quel est le ".($cmpt+1)."° fichier ?</p>
	<p><input type=\"file\" name=\"nom\"></p>
	<input type=\"submit\" value=\"Envoyer\" enctype=\"multipart/form-data\"></center>
</form>";
		}
	else
		{$cmpt=0;
		$f=fopen($nomf,"wb");
		while($cmpt<$nombre)
			{$f2=gzopen($nomf.$cmpt.".gz","rb");
			$ascii=1;
				while(!gzeof($f2))
					{$ascii=gzgetc($f2);
					fwrite($f,$ascii);
					}
			gzclose($f2);
			unlink($nomf.$cmpt.".gz");
			$cmpt++;
			}
		fclose($f);
		echo "<center>Upload du fichier terminée !!!</center>";
		}
	}

?>

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
lundi 13 août 2007
Statut
Membre
Dernière intervention
13 août 2007

Dans ma config (phpinfo()), j'ai aussi 2M comme taille maximum, mais au dessus de 200 Ko, ça bloque quand même :-(
Messages postés
15
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
17 décembre 2018

Et bien, c'est très rapide d'utilisation et le fichier est zippé.
Merci pour ton script.
Et bonne programmation...
Messages postés
17
Date d'inscription
mardi 11 janvier 2005
Statut
Membre
Dernière intervention
20 mars 2008

Salut,
C'est simple et efficace, je suis sur free et j'ai trop galéré pour trouver une solution à l'upload.
Merci à toi!!!!!!!!!!!!!!
Bonne prog
Messages postés
629
Date d'inscription
mercredi 3 juillet 2002
Statut
Membre
Dernière intervention
9 octobre 2006

bein autrefois (lol) c'était 200Ko il me semble...
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Il s'est peut-être trompé dans le titre ;-)
Afficher les 13 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.