Pitou69 Posted March 28, 2011 Share Posted March 28, 2011 Bonjour !Nous vendons uniquement des produits virtuels (logiciels). L'upload se passe très bien, aucun problème. La commande également, mais une fois que celle-ci est validée, les fichiers téléchargés via la boutique sont inutilisables :- Les fichiers ZIP téléchargés ne peuvent pas être décompressés. Tous les logiciels de décompression nous disent que l'archive est corrompue. Pour pouvoir décompresser le fichier, il faut lancer une réparation de l'archive, et là ça marche.- Nous avons essayé sans passer par des zips en mettant directement les EXE ou MSI originaux. Là, quand nous essayons de lancer les fichiers téléchargés... il ne se passe strictement rien.Les fichiers originaux, compressés ou non, marchent parfaitement bien et ont exactement la même taille que leurs homologues téléchargés par la boutique.Merci pour votre aide. :-) Link to comment Share on other sites More sharing options...
Samy_R Posted March 28, 2011 Share Posted March 28, 2011 Quand vous téléchargez un fichier, avez-vous, au même moment, une erreur signalée dans les logs du serveur ? Link to comment Share on other sites More sharing options...
Pitou69 Posted March 28, 2011 Author Share Posted March 28, 2011 Nous n'avons pas les logs, le site est chez un hébergeur.Les mêmes fichiers téléchargés en dehors de la boutique par des A HREF=... ne posent aucun problème. Link to comment Share on other sites More sharing options...
Samy_R Posted March 28, 2011 Share Posted March 28, 2011 Donc si j'ai bien suivi :- si je télécharge le fichier X sur le serveur Y depuis le site qui est sur le serveur Y : ca ne marche pas- si je télécharge le fichier X sur le serveur Y mais depuis une page hors de Y : ca fonctionne Link to comment Share on other sites More sharing options...
Pitou69 Posted March 28, 2011 Author Share Posted March 28, 2011 (Merci pour vos réponses...)Oui c'est ça, si le fichier est sur notre site mais en dehors de la boutique Prestashop, sur un autre dossier, nous pouvons le télécharger et le dézipper ensuite ou l'exécuter sans problème.Si nous téléchargeons le même fichier uploadé dans la boutique Prestashop, après un test d'achat (même site, même hébergeur, donc même serveur), il semble corrompu une fois sur le disque dur : archive endommagée (si fichier ZIP), ou alors le programme ne s'exécute pas (fichier EXE ou MSI). Link to comment Share on other sites More sharing options...
Samy_R Posted March 28, 2011 Share Posted March 28, 2011 Cela peut venir du fait que le transfert via Prestashop se fait mal en raison d'une erreur PHP : rapprochez vous de votre hébergeur s'il peut vous fournir les logs. Link to comment Share on other sites More sharing options...
Pitou69 Posted March 28, 2011 Author Share Posted March 28, 2011 Entendu, merci pour le conseil. :-) Link to comment Share on other sites More sharing options...
Pitou69 Posted March 29, 2011 Author Share Posted March 29, 2011 Rebonjour. :-)Alors aucune erreur n'apparaît dans le log.En revanche j'ai comparé les fichiers originaux et ceux téléchargés via la boutique, et ils ne sont pas exactement pareils.Les fichiers téléchargés par Prestashop ont tous un caractère parasitaire au début, code 10 (hexadécimal 0A). Un seul octet, mais qui suffit à rendre le fichier illisible. Il faut que je le supprime manuellement après le téléchargement pour rendre le fichier lisible.J'ai essayé de modifier le script de téléchargement (get-file.php). Le remplacement des echo fgets(...) par un readfile($file) ne change rien, et quoi que je fasse, ce caractère parasitaire est systématiquement inscrit au début du fichier.Ca vous évoque quelque-chose ? Link to comment Share on other sites More sharing options...
Samy_R Posted March 29, 2011 Share Posted March 29, 2011 Oui ca peut venir d'un problème d'encodage, qui insère automatiquement un caractère "bidon" en début de fichier.Si vous l'ouvrez dans un éditeur, ce fichier .php, quel format affiche-t-il ? UTF-8 ? ISO? ANSI ? Link to comment Share on other sites More sharing options...
Pitou69 Posted March 29, 2011 Author Share Posted March 29, 2011 Ca y est j'ai trouvé.Ce n'est pas lié à l'encodage. Pour corriger cette erreur j'ai modifié get-file.php :1) Lignes 1 à 3 :<?phpinclude(dirname(__FILE__).'/config/config.inc.php');... remplacées par :<?phpob_start();include(dirname(FILE).’/config/config.inc.php’);2) Ligne 261 :ob_end_flush();... remplacée par :ob_clean();C'est tout. Plus de problème.J'ai trouvé la solution dans un forum suite à une question d'une personne qui avait exactement le même problème : fichiers binaires corrompus après téléchargement par script PHP.Je ne m'y connais pas assez en PHP pour comprendre le pourquoi du comment, mais si cette modification est nécessaire pour nous elle doit certainement l'être pour d'autres utilisateurs de Prestashop qui pourraient buter sur la même anomalie.(merci pour vous être penché sur le problème, samy, très sympa) Link to comment Share on other sites More sharing options...
Samy_R Posted March 29, 2011 Share Posted March 29, 2011 A votre service Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now