Upload de plus de 200ko sur free

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

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.