Je développe donc un nouveau format de cours, dans lequel une image est associée à chaque activité dans un cours, et présentée visuellement. J'ai créé le format du cours, remplacer le moteur de rendu, etc. Cela a bien fonctionné. Cependant, les images sont censées être générées sur mesure et, comme elles doivent fonctionner pour tout le monde, je mets du code supplémentaire dans le module de cours général, permettant le téléchargement d'une image.Moodle: Les fichiers téléchargés via File API sont corrompus lors de la visualisation
Après avoir eu quelques difficultés de ma part à faire fonctionner l'API File, tout fonctionne désormais très bien. Seulement dans mon format de cours, il y a un en-tête supplémentaire, sous lequel vous pouvez télécharger une seule image. Ceci est bien enregistré dans la base de données, il n'est pas dans le brouillon et il est visible dans mes fichiers de données si je suis le contenthash dans la base de données. Il est même chargé dans le formulaire comme amende par défaut. Cependant, si j'essaie de travailler avec l'image, tous les tests fonctionnent bien (.is_valid_img() etc) et on me propose même de télécharger un fichier. Cependant, quand je le fais, il est corrompu et mon visualiseur de fichiers dit: "Erreur critique: pas un fichier png". Inutile de dire qu'il n'est pas affiché sur mon site de cours actuel.
Lorsque je regarde le fichier dans filedir, c'est très clairement un png. S'il vous plaît, je serais reconnaissant pour toute aide, puisque j'ai essayé beaucoup et suis à mon esprit.
Mec, merci beaucoup. Oui, c'était juste un var_dump aléatoire, qui a été imprimé à l'URL de l'image, que je n'ai pas pris en compte, parce que je ne pensais pas que le contenu de l'image serait généré à cet endroit. –
Le contenu de l'image n'est pas généré ici, mais il est chargé à partir du stockage du serveur et poussé vers le navigateur de l'utilisateur à partir de là, ce qui signifie qu'il ne doit rien sortir avant le contenu du fichier. – davosmith
Ah bon à savoir, ils devraient rendre cela plus clair sur la documentation à mon avis. En tout cas, merci pour votre aide! :) –