|
Evitez les restrictions de taille
|
Informations rapides |
|
|
Informations détaillées
|
Description :
Description du projet:
Vous remarquerez sans doute que de nos jours bon nombre d'hébergeur (grauits surtout) interdisent les fichiers de plus de 2mo (free.fr), 500ko (awardspace.com), etc... Vous remarquerez également que c'est extrêment ennuyeux de les
Portion de code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
|
<?php /* Dans un premier temps il vous faut découper votre fichier. Je ne vous cache p as que la variable $file contient le nom de votre fichier à couper. C'est ici qu'on
se rend compte de l'ambiguité de la situation. Vous ne pouvez pas uploader votre
fichier (votre hébergeur refuse, le fichier est trop gros). Vous pouvez alors utiliser un programme pour couper vos fichier. Avec une petite recherche google vous devriez trouver rapidement (HJsplit pour les windoziens ou bien KJsplit ou gnusplit pour le unixiens, les purs). Mais si vous avez php en localhost et votr e site sur un hébergeur gratuit vous pouvez vous servir du code suivant. Important à noter: pour un fichier "file.truc" les parties doivent s'appeler "file.truc.000", "file.truc.001", etc... En commançant à 000 et en continuant d e un en un. Sinon le rassembleur ne trouveras pas les différentes parties */ // Variables à définir $file = "file.rar"; // Taille maximale des parties en octet (1ko=1024octets et 1mo=1024ko=1024*1024o ctets) $cutsize = 1024*500; // Code $handle = fopen ($file, "rb") or die ("Lecture impossible !"); $i = 0; while (!feof($handle)) { $istring = $i; $partstring = ""; while (strlen($istring) < 3) $istring = "0".$istring; while(strlen($partstring)<$cutsize && !feof($handle)) { $partstring .= fgets($handle, $cutsize-strlen($partstring)+1); } $partfile = fopen($file.".".$istring, "wb") or die("Erreur fatale: impossibl e d'ouvrir $file.$istring"); fwrite($partfile, $partstring) or die("Erreur fatale: impossible d'écrire da ns $file.$istring"); fclose($partfile); echo "Fichier $i écrit<br />\n"; $i++; } fclose($handle); ?>
<?php /* La partie du code la plus importante: celle qui rassemble le fichier $file de s parties "$file.000", "$file.001", etc... Et les donne en téléchargement à l'util isateur. */ // Votre fichier $file = "file.rar"; // S'il n'y a pas la première partie ça ne sert à rien if (!file_exists($file.".000")) die("Partie 000 de $file non trouvée"); // Microsoft internet explorer qui fait chier parce qu'il ne respecte pas les // normes oblige à rajouter du code if (strstr($HTTP_USER_AGENT,"MSIE")) $attachment = ""; else $attachment = " attachment;"; // Vous pouvez changer le type de fichier si vous le voulez header("Content-type: application/octet-stream"); header("Content-Disposition:$attachment filename=$file"); header("Content-Description: File Transfer"); // La boucle qui assemble les fichiers $istring = "000"; $i = 0; while(file_exists($file.".".$istring)) { // Que c'est beau readfile()... les parties ne sont pas ouvertes donc ça ne // devrait pas trop prendre de temps même pour les gros fichiers readfile($file.".".$istring); $i++; $istring = $i; while (strlen($istring) < 3) $istring = "0".$istring; } // C'est fini... A vous de jouer --> http://phpmagic.awardspace.com/ ?>
|
|
Informations & Services |
 |
|
|
 |
Newsletter
Autre Sources
Tips
|