rvelices a écrit:
J'utilise aussi les sites distants et j'ai eu le meme probleme.
Dans picture.php, chercher
// FIXME : with remote pictures, this "remote fopen" takes long...
if ($i == 'current')
{
if (@fopen($cat_directory.'/pwg_high/'.$row['file'], 'r'))
{
$picture[$i]['high'] = $cat_directory.'/pwg_high/'.$row['file'];
}
}
et commenter le code ci-dessus:
/* if ($i == 'current')
{
if (@fopen($cat_directory.'/pwg_high/'.$row['file'], 'r'))
{
$picture[$i]['high'] = $cat_directory.'/pwg_high/'.$row['file'];
}
}*/.
j'ai appliqué cela , ca va en effet pus vite pour afficher les images taille monyenne mais les vignettes mettent toujours autant de temps à toutes s'afficher...
digimic a écrit:
la solution est donc choisie mais cela sera pour la verison 1.6 ? pas avant?
solution trop impactante pour arriver avant la branche 1.6
la solution est donc choisie mais cela sera pour la verison 1.6 ? pas avant?
z0rglub a écrit:
rvelices a écrit:
Alors vous preferez quoi ?
solution 2.
Cela signifie que je vais moi aussi faire une croix sur fournir les dimensions de l'image haute résolution dans Web Service...
N'est-ce pas? Dommage... Je vais supprimer les hrwidth= et les hrheight=... 8-/
rvelices a écrit:
Alors vous preferez quoi ?
solution 2.
Dans service web, c'est
$hrsize = @getimagesize($high); if ($hrsize[0]>0) { ....
FIXED !!!
VDigital a écrit:
C'est vrai pour les URL (et ça marche chez moi car je suis en 5 sur le test distant, ou en 4.3 sur des tests mais purement locaux).
Mais alors, avec getimagesize(), on devrait sans sortir à peu de frais, je n'ai pas vu de restriction.
Aiee, je n'avais vu l'appel a imagesize -> 3 solutions possibles
1. on synchronize la taille de l'image high -> 2 colonnes int de plus dans la table images (ca devient lourd d'apres moi)
2. on synchronize seulement true,false et ensuite on rennonce a getimagesize -> on dimensionne pas la nouvelle fenetre ouverte quand on clique sur la photo
3. on synchronize seulement true,false et ensuite on appele getimagesize qui sera lent (mais seulement si pwg_high existe)
Alors vous preferez quoi ?
C'est vrai pour les URL (et ça marche chez moi car je suis en 5 sur le test distant, ou en 4.3 sur des tests mais purement locaux).
Mais alors, avec getimagesize(), on devrait sans sortir à peu de frais, je n'ai pas vu de restriction.
VDigital a écrit:
J'utilise is_file() au lieu de @fopen().
N'ayant toujours pas compris pourquoi on fait un fopen sur une image...
Il me semble normal que PHP réponde mal sur le FOPEN distant (mieux en local et encore is_file serait plus performant).
Par contre is_file() ne chargera pas le fichier pour autant et est forcément rapide.
Et à quelque chose près getimagesize() fera de même.
Est-ce que je passe à coté de quelque chose?
PS: Pour info, il y a d'autres fopen() qui trainent dans le code, certains justifiés d'autres pas du tout.
Je n'ouvre pas de bug, je pourrais me tromper.
La fonction is_file marche avec les URL a partir de PHP 5.0 et pas avant. Donc pour le moment et pour la meilleure compatibilite il vaut mieux ajouter une colonne a la table images. Je me suis assigne le bug 82 pour une release 1.6
rvelices a écrit:
J'utilise aussi les sites distants et j'ai eu le meme probleme.
Dans picture.php, chercher
// FIXME : with remote pictures, this "remote fopen" takes long...
if ($i == 'current')
{
if (@fopen($cat_directory.'/pwg_high/'.$row['file'], 'r'))
{
$picture[$i]['high'] = $cat_directory.'/pwg_high/'.$row['file'];
}
}
et commenter le code ci-dessus:
/* if ($i == 'current')
{
if (@fopen($cat_directory.'/pwg_high/'.$row['file'], 'r'))
{
$picture[$i]['high'] = $cat_directory.'/pwg_high/'.$row['file'];
}
}*/
tu n'auras plus la possibilite de telecharger les photos en haute resolution (si t'as des sous repertoires pwg_high), mais ca devient plus rapide.
J'ai pris le message de rvelices pour exemple et re-situer le pb...
Evidemment je rencontre le même problème dans service web, c'était couru d'avance.
Je contourne le pb par quelque chose de très proche de ceci:
if (is_file($cat_directory.'/pwg_high/'.$row['file'])) { $picture[$i]['high'] = $cat_directory.'/pwg_high/'.$row['file']; }
J'utilise is_file() au lieu de @fopen().
N'ayant toujours pas compris pourquoi on fait un fopen sur une image...
Il me semble normal que PHP réponde mal sur le FOPEN distant (mieux en local et encore is_file serait plus performant).
Par contre is_file() ne chargera pas le fichier pour autant et est forcément rapide.
Et à quelque chose près getimagesize() fera de même.
Est-ce que je passe à coté de quelque chose?
PS: Pour info, il y a d'autres fopen() qui trainent dans le code, certains justifiés d'autres pas du tout.
Je n'ouvre pas de bug, je pourrais me tromper.
VDigital a écrit:
Il suffirait donc d'ajouter une colonne 'cette photo a une image haute qualité' True/False.
On éviterait de vérifier la présence de l'image haute qualité.
C'est une bonne idée. D'ailleurs, c'est déjà dans le bugtracker : bug 82. Le seul contre argument, c'est la surcharge induite lors de la synchronisation. Pour l'augmentation du volume de stockage, c'est négligeable un champ enum('true','false').
Il devrait y en avoir dès que z0rglub aura lu mon post précédent, je pense... 8;-)
Je ne lui ouvre pas le bug pour autant à lui, c'est à lui de voir.
y a t-il du nouveau à ce sujet?
ça me semble une bonne idée..... pour le gain de temps de calcul à l'affichage....
mais la table image est déja chargée, est ce que ça joue aussi ?
eric.
VDigital a écrit:
z0rglub a écrit:
La base de données ne contient pas l'information "telle photo a une image haute qualité". Il faut donc que PWG, à chaque affichage de picture.php, vérifie la présence de l'image haute qualité. Si PWG vérifie à distance, c'est long.
Oui... Je me coucherai moins...
Excellent, si je te trouve un palliatif, tu me dis quoi...
Est-ce que je peux dire une petite "crétinerie"?
Il suffirait donc d'ajouter une colonne 'cette photo a une image haute qualité' True/False.
On éviterait de vérifier la présence de l'image haute qualité.
Il suffit que create_listing_file.php et update.php positionnent l'indicateur localement.
Remote_site.php n'ayant plus qu'à reprendre l'indicateur fourni dans le listing.
A deux ou trois détails près on contourne la lenteur de "remote fopen", puisque tous les tests d'existance deviennent locaux...
Ai-je dit une petite "crétinerie"?