REASSEMBLER FICHIER SUR SERVEUR

Signaler
Messages postés
488
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
-
Messages postés
6
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
1 avril 2007
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/41138-reassembler-fichier-sur-serveur

Messages postés
6
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
1 avril 2007

bien vu codefalse;
utilisation de mes propres mots, ou aussi appellé 'le celebre effet mirroir' avec lequel
je faisais deja fureur a la maternelle.
aller je t'accrode le dernier mot. tu as gagné .. (pas grand chose en fait.)

++ sous le bus
Messages postés
3
Date d'inscription
mardi 30 janvier 2007
Statut
Membre
Dernière intervention
21 février 2007

je voulais dire automatique dans le sens 'ne pas avoir a modifier $file dans le script'
a force de lire à droite à gauche, jai fait ça qui me va mieux :

<?php /*********************************************************************************************

Usage: Decouper votre fichier avec HJSplit (http://www.treepad.net/download/hjsplit.zip)
Uploader toutes les parties sur votre site par ftp.
Uploader ce script dans le même répertoire.
Une fois tout uploadé, ouvrir ce script php avec le browser (testé avec Internet Explorer)

Le script va assembler les fichiers ffffff.xxx.001, ffffff.xxx..002 etc. du répertoire où il se trouve.
Le résultat sera dans le fichier ffffff.xxx
La progression de l'assemblage est indiquée par un message pour chaque partie assemblée.

Si le fichier résultat ffffff.xxx existe déjà ou si le script ne trouve pas de fichier *.001, rien n'est effectué.

A l'utilisateur d'effacer à la fin les parties *.001, *.002 etc.

ATTENTION!!!, Lors du reassemblage votre page web peut planter (erreur 503) !
Il semble que meme apres le plantage de la page web, php continue de reassembler :)))
Utiliser votre logiciel FTP pour voir l'avancement du re-assemblage.
N'EFFACER SURTOUT PAS le fichier sur le ftp car meme si il ne semble plus grossir
Il se peut que vous ne le voyez pas (reconnecter vous sur le ftp),
De plus une fausse manip et vous plantez le server php ! [sur free en tout cas]

*************************************************************************************************/

/* parcours du dossier courant pour trouver un fichier portant l'extension .001 */
$dossier = opendir (".");
$existe001= False;

echo "ASSEMBLAGE GROS FICHIER
";

while ($fichier = readdir ($dossier))
{
if(substr($fichier,-3) == "001")
{
$existe001= True;
$fichier_a_assembler = substr($fichier,0,strlen($fichier)-4);
echo "Fichier a assembler : " , $fichier_a_assembler, "
";
}
}
closedir ($dossier);

/* si pas de fichier .001 trouvé, exit */
if(!$existe001) die("

*** PAS DE FICHIER .001 TROUVE ***");

/* verication que le fichier résultant n'existe pas déjà !!! */
if (file_exists($fichier_a_assembler)) die("

*** Le fichier résultat ". $fichier_a_assembler . " EXISTE DEJA !!! ***");

/* assemblage du fichier */

$BUF_MAX =10000000;

$zeros = '00';
$i = '001';
$i=(int)$i;

$handle2 = fopen($fichier_a_assembler, "ab");

while(file_exists($fichier_a_assembler.".".$zeros.$i))
{
$handle = fopen($fichier_a_assembler.".".$zeros.$i, "rb");
while(fwrite($handle2,fread($handle,$BUF_MAX)));
fclose($handle);
echo "--partie ", $zeros, $i , " ajoutée.
";

$i++;
if($i 10) $zeros '0';
elseif($i 100) $zeros '';
}

fclose($handle2);

echo "
Le fichier " , $fichier_a_assembler , " a été ré-assemblé avec succès.";
echo "
Sa taille est de " , filesize($fichier_a_assembler) , " octets.";

?>
Messages postés
1123
Date d'inscription
mardi 8 janvier 2002
Statut
Modérateur
Dernière intervention
21 avril 2009
1
en fait c'est ton "Voila pourquoi j'ai si peu de consideration pour les details dont vous me faite part." qui "apporte un reel interet au debat et donne clairement la sensation d'une entente cordiale et intelligente."

C'était d'apres moi une reflexion completement inutile, juste mettre "Pour les autres, sachez que je viens du language C et que le php ne m'interesse que tres peu." aurait été largement suffisant.
Voila pourquoi j'ai réagit ainsi. J'ai pas attaqué, j'ai défendu.

"(jespere ne pas tavoir outré, en toute sinceritée)", moi non plus :)
Messages postés
6
Date d'inscription
dimanche 25 avril 2004
Statut
Membre
Dernière intervention
1 avril 2007

codefalse:

biensur, mes programme en C ne fonctionne pas,
pas plus que mon code php, ce code est parfaitement inutile et c'est a ce demander pourquoi je l'ai posté.

j'ajoute que les commentaires comme 'tu n'es pas un dieu en ma connaissance et ton code le prouve ...' apporte un reel interet au debat et donne clairement la sensation d'une entente cordiale et intelligente. (jespere ne pas tavoir outré, en toute sinceritée)

alkasar:
tout est automatique normalement,
suffit davoir les fichier .00x du meme nom que le fichier final
exemple:
bonjour.avi (700mo)
bonjour.avi.001 (50mo)
bonjour.avi.002 (50mo)
bonjour.avi.003 (50mo)
bonjour.avi.004 (50mo)
[...]
$file sera "bonjour.avi"

De plus l'impression de passer pour un 'autiste programmeur' me passe largement au dessus de la tete au vu des reflexions pertinentes dont vous me faites part et qui donne a ce code un petit coté rustique avant-gardiste.
Afficher les 13 commentaires