J'oubliais...
J'ai aussi remplacé le get_element_path() par un get_element_url().
Salut à tous.
Je viens rajouter une couche à ce post, car j'ai eu le même problème, avec la version 1.7.1, et il me semble savoir d'où ça vient. Ça vient de chez free ;-)
Concrètement, quand je saisis directement l'url du fichier à télécharger, tout fonctionne correctement.
Exemple:
* Je saisis directement http://example.free.fr/pwg/galleries/foo/DSCF0006.avi dans la barre d'adresses
* Je sauve en local
* Je fais un diff entre le fichier téléchargé et le fichier source => pas de différences. Tout est OK.
En revanche, si je passe par la ch'tite disquette, mon fichier est corrompu...
* Je sauve en local
* Je fais un diff, comme ci-dessus => Binary files differ.
Un petit gvimdiff me -//:---\spam que dans le fichier téléchargé, il manque des données en plein milieu.
À chaque essai, même problème... mais... les données manquantes ne sont jamais les mêmes !!!
Je farfouille un peu dans le code, et je finis par arriver à la ligne de code qui fait tout le boulot dans action.php:
@readfile($file);
Or donc, si des données sont perdues quelque part, ça vient forcément de cette fonction, qui est une fonction native PHP. Serait-ce donc un bug de PHP ?
Je farfouille la doc de PHP, et je trouve dans les commentaires des problèmes liés aux output buffers. Je trouve des références à ob_end_flush() (voir http://us2.php.net/manual/en/function.readfile.php )
J'essaie de tripoter action.php en ajoutant avant la ligne incriminée des trucs comme ça:
while (@ob_end_flush());
ou comme ça:
ob_clean(); flush();
Rien n'y fait. En revanche, je trouve parfois, à la fin de mon fichier AVI, la chaîne suivante:
UPDATE pwg_sessions SET expiration = now(), data = '' WHERE id = '123456 etc.' ; [mysql error 2006] MySQL server has gone away</pre>
À mon avis, donc, le problème semble venir du fait que chez free, il y a un timeout quelque part qui se déclenche avant la fin du readfile(), et qui pose problème. Le serveur étant mutualisé, il y a de fortes chances que ce timeout soit une contrainte à prendre en compte (comprenez, il vont pas l'augmenter rien que pour mes beaux oeils). Si on passe directement par l'URL du fichier, on ne passe ni par PHP, ni par MySQL, donc, on contourne le problème.
Pour remédier à ce problème, j'ai corrompu les sources de PWG (ouais, même pas peur !)
Dans action.php, j'ai rajouté, juste après les deux pgw_log():
if ($_GET['part'] == 'e') { set_status_header(302); header( 'Request-URI: '.$file ); header( 'Content-Location: '.$file ); header( 'Location: '.$file ); exit(); }
J'aime pas faire ça, mais mon problème est contourné. Au lieu de lire le fichier par readfile() et le balancer dans la réponse HTTP, je fais un redirect sur le fichier à envoyer.
Happy fixing... Et félicitations pour ce bel outil.
Salut à tous, développeurs et utilisateurs (bravo aux premiers pour le boulot fourni !)
Un petit UP pour ce sujet, qui n'affecte j'ai l'impression que les galeries hébergées sur Free.fr
J'ai le même souci avec ma galerie en 1.6.2 , migrée en 1.7 depuis 1 mois. Les images téléchargées avec la disquette (les images Haute-Résolution, qui font dans mon cas 2 Mo maxi) sont corrompues (à partir du 2e tiers de l'image généralement).Bien sûr, c'est aléatoire, suivant la période, la bande passante de l'utilisateur.
Par contre, j'ai jamais eu le souci en faisant une visualisation au préalable de l'image en haute-résolution. Alors quelle est la différence fondamentale entre les 2 méthodes, pour qu'elles donnent ces résultats différents ?
Pour le moment, je ne peux que déconseiller l'utilisation de la disquette à mes utilisateurs, et je vais tester Donwload Multi...
A+
bonjour,
désolé pour le déterrage de post, mais j'ai le même souci, sur des videos .avi.
J'ai PWG 1.7 installé sur un serveur Free.
si j'essaie de télécharger une video par l'icône disquette, elle arrive corrompue, quel que soit le navigateur utilisé. J'ai également essayé avec l'extension de Firefox DownThemAll, qui m'annonce une erreur, en général à la fin.
J'ai constaté ce problème d'abord sur des fichiers supérieurs à 9Mo, puis avec des plus petits aussi.
Je n'ai pas de souci si je tape directement l'adresse du fichier dans le navigateur pour le télécharger, ou par client ftp.
J'avais la version 1.4 avant et il n'y avait pas de problème (oui, je sais, j'ai pas fait de mise à jour pendant longtemps)
J'en déduis que le souci viens de PWG.
Y a-t'il eu une correction apportée, ou une manip à faire?
Question subsidiaire: y aurais pas moyen de modifier l'action de cette icône disquette, afin que le lien pointe directement vers le fichier pour proposer un téléchargement par clic droit > enregistrer sous (comme ce que j'avais dans l'ancienne version 1.4)
Lien de ma galerie video
J'ai essayé de chez moi que ce soit avec FF ou IE, c'est pareil ...
En revanche, j'ai essayé au boulot avec IE et je n'ai eu aucun souci...
Je pense donc que ça doit venir de chez moi mais j'ai beau y réfléchir, je ne vois pas ce que ça peut être !...
Je viens d'essayer avec les photos DSC01153 et DSC01158, et j'ai pas eu de soucis.
C'est systématique chez toi?
J'ai utilisé FF.
Par contre, hier, et c'est la 1er fois, j'ai eu une image sur mon site qui était composé de 2 images... Rigolo et original mais pas ce je voulais. Galerie chez Free moi aussi.
Reste à déterminer si le problème vient de PWG ou de free ou des 2...
Voici le lien :
http://lybhur.free.fr/phpwebgallery
Lien vers la galerie...?
J'avais le même pb : la photo arrivait sur ma machine avec la bonne taille mais impossible de la visualiser ; la correction permet bien de visualiser les photos télécharger mais .....
.... j'ai une bande grise plus ou moins épaisse en fonction des photos :-(
Avez-vous déjà rencontré ce pb ??
Note : ce défaut n'apparaît pas si je clique sur l'image réduite pour visualiser la grande (gasp ?!?...)
Mais de rien, la correction sera apportée dans la prochaine version 1.6.2 (date de livraison non prévue pour le moment).
Un grand merci à Rub pour sa correction qui corrige parfaitement le problème. Telecharger des photos en pleine résolution devient un jeu d'enfant.
Mangano
Il suffit de supprimer la ligne set_time_limit(0) dans le fichier action.php pour ne plus avoir la problème (non testé!).
J'ai créé une fiche http://bugs.phpwebgallery.net/view.php?id=544
Je confirme le download de l'image en haute définition ne fonctionne pas!
Quelqu'un a-t-il ouvert un incident dans bugtracker? Si non, quelqu'un peut le faire, merci?
Colums a écrit:
Il n'ya pas de problème de taille sur le serveur mais seulement après téléchargement.
Je confirme, c'est bien l'opération de téléchargement qui modifie le fichier. Si par exemple, on visualise l'image
en Haute résolution en cliquant dessus, et que l'on sauve ensuite le pb ne se reproduit pas.
Mangano
Elle apparait seulement si la version high existe.