Dans un plugin, j’essaie d’utiliser copie_locale() pour récupérer un fichier distant (j’ai essayé à l’extérieur au travers d’un proxy, mais aussi sur localhost sans proxy) et j’obtiens à chaque fois une copie partielle du fichier, et non son intégralité.
Je récupère toujours le début du fichier source, quel qu’il soit, sur 15208 octets, ce qui ne me semble pas une taille basée sur une puissance de 2.
C’est le même code : la mediatheque utilise copie_locale, donc je dirai que le problème ne vient pas de la fonction elle même,
mais peut etre de la façon dont tu l’utilises ?
La copie locale est tronquée a 16Mo, definie par la constante _COPIE_LOCALE_MAX_SIZE
mais je ne pense pas que cela vienne de là.
As tu essayé de supprimer le fichier tronqué téléchargé la premiere fois, car ensuite SPIP ne reessaye pas de le telecharger a nouveau,
sauf si tu passes force=true dans copie_locale
C’est le même code : la mediatheque utilise copie_locale, donc je dirai que le problème ne vient pas de la fonction elle même,
mais peut etre de la façon dont tu l’utilises ?
La copie locale est tronquée a 16Mo, definie par la constante _COPIE_LOCALE_MAX_SIZE
mais je ne pense pas que cela vienne de là.
Non, les fichiers testés font quelques centaines de ko.
As tu essayé de supprimer le fichier tronqué téléchargé la premiere fois, car ensuite SPIP ne reessaye pas de le telecharger a nouveau,
sauf si tu passes force=true dans copie_locale
J’ai supprimé sans succès, et utilisé le paramètre ‹ force ›.
C’est dans recuperer_body() que ça ne boucle pas. Il semble détecter un feof() erroné, puisque la taille max n’est pas atteinte…