Re : Impossible de télécharger plus de 8 Mo d'un coup

Oliv',

Pour répondre à ta question sur ton code source, je ne le prendrais pas wink. Les raisons sont simples : la première c'est que je prefère limiter un maximum l'utilisation de code source sous licence afin d'éviter tout conflit entre licences, et la deuxième, c'est que j'ai ma fierté (peut être mal placée) à vouloir absolument faire mon propre code wink (à tord ou à raison).

Donc je me débrouillerai, en général j'arrive toujours à mes fins...avec plus ou moins de temps certes ! smile En tout cas, merci quand même !

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

27

Re : Impossible de télécharger plus de 8 Mo d'un coup

Salut SamRay,

Par copyright, j'entendais juste un "droit d'auteur", pas une licence wink
Mon code est dispo et sans contraintes si ce n'est une ligne de copyright quelque part, et la brique de base qui fait du TAR est libre : http://pear.php.net/package/Archive_Tar

a++;

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

Ca marche bien tout ça !! Mais cet abruti de Windows ne sait pas gérer les tar d'origine... Donc impossible de vérifier mais je vous fait confiance wink

C'est beau le PHP quand même smile

Cyb.

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW

29

Re : Impossible de télécharger plus de 8 Mo d'un coup

Bonjour,

Juste une question de la part de qqun pas trop capable de "patcher" albulle...
Comment faire pour mettre des vidéos sur un album? y a-t-il beaucoup de choses à changer dans les fichiers php? de nouveaux fichiers à créer? etc..?
Je pense que de plus en plus les gens prennent des photos et des vidéos...donc peut-être d'autres personnes seront intéressées.

Merci beaucoup !

Arnaud

Courir est un privilège que les gens ponctuels n'ont jamais su apprécier

30

Re : Impossible de télécharger plus de 8 Mo d'un coup

Salut Arnaud,

Il y a quelques fichiers à patcher, effectivement. Tout ça n'est pas simple pour qui n'a jamais mis les mains dedans...

Ce que je proposerais bien, mais là c'est à SamRay de donner son avis, c'est de faire une release parallèle d'Albulle, publique, qui serait celle que j'embarque sur mon site. Et qui serait peut-être publiée chez moi si besoin.
Un peu à la manière de VirtualDub qui n'embarque pas MPEG2, et sa release parallèle VirtualDubMod qui l'embarque...

WWW

31

Re : Impossible de télécharger plus de 8 Mo d'un coup

Oliv' a écrit:

Ce que je proposerais bien, mais là c'est à SamRay de donner son avis, c'est de faire une release parallèle d'Albulle, publique, qui serait celle que j'embarque sur mon site.

ben ça me plairait bien...
ça correspondrait à deux versions d'albulle? une pour les albums photo et une pour les albums vidéos?

Merci en tout cas de répondre si vite, j'espère avoir d'autres bonnes nouvelles à ce sujet !
ciao
Arnaud

Courir est un privilège que les gens ponctuels n'ont jamais su apprécier

32

Re : Impossible de télécharger plus de 8 Mo d'un coup

SamRay, ton avis sur la question ?
Je sais que de toute facon, tu n'es pas pour intégrer du code extérieur dans ton soft... alors autant tirer une branche!

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

Salut messieurs !

Alors alors, il n'y a rien qui empêche de faire une nouvelle branche d'AlBulle wink Sa licence le prévoit et si elle est respectée il n'y a aucun problème. C'est le but des licences libres. Donc si tu veux créer une nouvelle branche, tu es libre !

Sachez quand même que je compte bien intégrer toutes ces fonctionnalités à AlBulle, mais le tps me manque pour faire avancer tout ça à bon rythme sad. Je comptais bien intégrer le support des vidéos mais pas avant d'avoir un support pour les photos complètement terminé wink. Je voudrais d'abord intégrer un mode diaporama et la possibilité de pouvoir visionner le contenu du panier...tout ça bien sûr après avoir fait évoluer le panier...

A ce sujet Olivier, j'ai regardé et fait quelques légères modifs chez moi ce week-end (j'y ai passé dans les 15 minutes pas plus...) et je pense que je ne suis pas loin d'avoir un panier illimité en version Zip wink. J'espère que ça va marcher. Je prefère rester en Zip, non pas que je n'aime pas le tar, mais que le zip est plus universel et comme l'a justement dit Cyber, le tar n'est pas supporté nativement par Windows.

Bref, toutes les branches sont les bienvenues sous couvert de la licence originale d'AlBulle ! (http://www.cecill.info)

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

34

Re : Impossible de télécharger plus de 8 Mo d'un coup

ça roule, merci pour ta réponse!

Je suis très impatient de voir ta solution en ZIP, + populaire que TAR !

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

Oliv' a écrit:

Je suis très impatient de voir ta solution en ZIP

Héhé, moi aussi, mais pour l'instant je n'ai pas le temps de continuer...arf, toujours ce manque de temps !! Vivement les journées de 36 heures !

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

J'ai réussi ! Finalement j'ai trouvé quelques minutes (bien tardivement j'en conviens) et j'ai une ébauche de nouvelle classe pour le panier qui permet enfin de télécharger des archives Zip de plus grosses tailles !!

Reste plus qu'à lui ajouter une limitation non plus sur le nombre de fichiers mais sur la taille de l'archive qui sera générée ! C'est bon le PHP...j'adore vraiment ça ! cool

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

37

Re : Impossible de télécharger plus de 8 Mo d'un coup

explique-nous un peu alors, comment t'as fait ton histoire !

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

Finalement ce fut plus simple que je l'imaginais et à mon avis, je ne dois pas être loin de ce que as fait toi avec le tar.

Premièrement, j'ai changé la méthode de création du Zip : avant la création se faisait en une fois, maintenant je boucle sur chaque fichier du panier pour l'ajouter au zip. De cette façon, il n'y a qu'un seul fichier en RAM à un instant t. L'effet produit est qu'avant il y avait un fopen, une écriture et un fclose ; maintenant il y a autant de fopen que de fichiers à coller dans l'archive. Ca fait beaucoup d'ouvertures / fermetures de fichiers mais c'est illimité.

Deuxièmement, lors de l'envoi je lisais l'intégralité de l'archive dans une variable que j'envoyais ensuite à la sortie standard. Désormais, je lis séquentiellement le fichier par paquet de 2Mo et j'envoie chaque paquet l'un après l'autre jusqu'à épuisement de l'archive ! Comme cela il n'y a que des paquets de 2Mo max en RAM à un instant t.

C'est tout bête finalement, mais il fallait y penser et savoir que c'était faisable ;-).

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

39

Re : Impossible de télécharger plus de 8 Mo d'un coup

mais alors, tu crée le fichier sur le compte!  C'est pas ce que, justement, tu voulais pas faire?
Ca laisse le pb du nom de fichier, de la concurrence des accès, des quotas disk, et touti quanti, non ?

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

Oui bien sûr ca créé le fichier sur le compte, ca l'a toujours fait et je n'avais pas l'intention de changer ça (on a du mal se comprendre). Pour la concurrence des accès, j'ai fait une petite modif pour la génération de l'archive : je colle l'identifiant de session en suffixe à l'archive temporaire pour garantir son unicité et être sûr que si plusieurs personnes génèrent leur panier en même tps, les générations ne se court circuitent pas entre elles.

Quant aux quotas de disque, effectivement, si 10 utilisateurs téléchargent en même temps chacun une archive de 50Mo sur un compte de 100Mo, ca explose "légèrement" la taille allouée le temps de la génération...

Je vais voir si je peux pas utiliser la bufferisation de sortie pour éviter de générer l'archive sur le disque...C'est comme cela que tu as fait je suppose ?

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

41

Re : Impossible de télécharger plus de 8 Mo d'un coup

C'est la raison pour laquelle j'avais basculé sur TAR : a aucun moment le serveur ne détient l'archive complète. Le serveur envoie le header HTML, puis le header 1, puis le fichier 1, puis le header 2, le fichier 2, etc...
Effectivement, je pense qu'il y a utilisation implicite du buffer de sortie PHP/Apache.
C'est forcément possible en ZIP aussi, mais c'est plus compliqué : AMHA, il faudrait faire une archive "à blanc" (comme je fais d'ailleurs en TAR pour calculer la taille) pour calculer les tables d'index et les mémoriser, puis faire comme indiqué ci-dessus.

PS: mais si, on va arriver à se comprendre wink

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

Conclusion : j'ai encore un peu de travail wink

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

43

Re : Impossible de télécharger plus de 8 Mo d'un coup

je peux te filer un coup de main si tu veux

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

Bin écoute, je vais faire une tentative, et si je galère trop, je crie au secours ! wink

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

45 Dernière modification par Cyberbob002 (09/03/2006 22h23m23s)

Re : Impossible de télécharger plus de 8 Mo d'un coup

Euh ... juste une question con là : pourquoi le fichier créé pour l'archive doit être sur le compte de l'utilisateur ??

Le dossier /tmp/ ne sert à rien ?

Edit 1 : le petit test qui va avec

<?php
$sTmpPath = ini_get('upload_tmp_dir');
$sFilePath = $sTmpPath.'/toto';

$rFp = fopen($sFilePath, 'w');
if ($rFp) {
    fwrite($rFp, 'Encore une victoire de canard !');
    fclose($rFp);
} else {
    echo 'OUPS';
}

if (file_exists($sFilePath)) {
    $sContenu = file_get_contents($sFilePath);
    if ($sContenu) {
        echo $sContenu;
    } else {
        echo 'Perdu ...';
    }
    
    unlink($sFilePath);
    
} else {
    echo 'File not found !';
}
?>

Ca marche chez moi et sur CeleoNet.

Edit 2 : pour la gestion des identifiants uniques :

<?php
// Génère une chaine unique se basant sur l'heure en microseconde
$sUID = uniqid();

// Pour plus de sécurité on peut le crypter en MD5
$sUID = md5(uniqid());

// Et la solution ultime : 
$sUID = md5(uniqid(rand(), true));
?>

Voila c'est tout pour ce soir wink


Cyb.

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

En fait j'y ai bien pensé...et je n'ai fait qu'y penser smile

Le truc c'est que je ne sais pas trop comment est géré le dossier /tmp par le serveur PHP (vidage périodique de son contenu ?...au cas ou y'ait des zip qui n'aient pas été effacés) et aller "pourrir" un autre dossier, je sais pas si c'est une solution...

Bref, je vais tenter la méthode tout en live sans écriture et j'aviserais !

Bonne nuit !

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

d'ou le " unlink($sFilePath); " wink

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW

48

Re : Impossible de télécharger plus de 8 Mo d'un coup

y'a certainement des quotas sur /tmp, non ?  (je pense évidemment aux serveurs publiques genre free.fr)

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

Cyb : dans ma dernière modif, j'ai rajouté un ignore_user_abort(true); pour être certain que le unlink(...) soit fait...

Oliv' : je suis tout à fait d'accord, je ne pense pas que le dossier /tmp soit ouvert à tout va sans restrictions. Sinon ca peut être un bon moyen de faire tomber un serveur en blindant le dossier /tmp jusqu'à plus soif.

-------------------------------
"Keyboard not detected, press a key to continue..."

WWW

Re : Impossible de télécharger plus de 8 Mo d'un coup

Oliv' a écrit:

y'a certainement des quotas sur /tmp, non ?  (je pense évidemment aux serveurs publiques genre free.fr)

Oui surement, mais c'est indépendant du compte et surement plus élevé aussi. Au pire une petite option wink

SamRay1024 a écrit:

je suis tout à fait d'accord, je ne pense pas que le dossier /tmp soit ouvert à tout va sans restrictions. Sinon ca peut être un bon moyen de faire tomber un serveur en blindant le dossier /tmp jusqu'à plus soif.

Une restriction est souvent que les fichiers créés ne sont pas exécutables. Mais pour le reste normalement ça passe.
Remarque : une des manière de descendre un serveur est de submerger son /tmp/ pour qu'il ne puisse plus travailler. Je ne sais pas si les serveur mutualisés ont des scripts lancé en CRON pour nettoyer les /tmp/ par contre.
M'enfin on peut imposser une taille de "bonne conscience" comme 50 Mo par exemple afin de ne pas tuer le serveur.

Ensuite il y aura une aute limitation qui va entrer dans la partie : le temps maximum d'exécution d'un process PHP...

----------------------------------------------------------------------------------------------------------------------------
On peut être intelligent toute sa vie et stupide un instant.

WWW