J'ai un script qui télécharge des fichiers dans un répertoire en ligne et stocke les détails du fichier dans une base de données. Les fichiers stockés sont renommés en ID de l'entrée dans la base de données. Chaque fois qu'un utilisateur demande un téléchargement, une instruction SQL simple récupère les détails du fichier dans la base de données, le contenu du fichier est lu dans la base de données et le fichier est invité à être téléchargé. Ce qui suit est mon code:Le script de téléchargement Php ne fonctionne pas
$one_file = $FILE_OBJECT->get($_GET['id']); // this is an object which just grabs the file details from the database
header("Content-type: ".$one_file['type']); // add here more headers for diff. extensions
header("Content-Disposition: attachment; filename=\"".$one_file["filename"]."\""); // use 'attachment' to force a download
header("Content-type: application/octet-stream");
header("Content-Disposition: filename=\"".$one_file["filename"]."\"");
readfile(_config('files_path').$_GET['id']);// reading the actual raw file stored in my online directory
Le problème est que Im test en utilisant un document Word et son téléchargement parfaitement - j'ai même vérifié le fichier brut en cours de téléchargement en modifiant manuellement son extension et il est tout à fait le téléchargement. Le problème est que quand il est téléchargé en utilisant le code ci-dessus, le fichier Word semble corrompu ou quelque chose, parce que quand j'essaie de l'ouvrir, tout est marmonné et brouillé. Que ce passe-t-il? J'ai utilisé cet extrait sur d'autres sites sur lesquels j'ai travaillé, et ils fonctionnent parfaitement bien ... Aidez s'il vous plaît!
Argh ... ** le **, le 'teh'. Mais comme une question: (1) Pouvez-vous confirmer que le stockage dans la base de données est fait correctement, à savoir: si vous enregistrez ce contenu sous forme de fichier sur le système de fichiers, cela fonctionne-t-il? (2) Que se passe-t-il si je donne '' ../conf/ yoursupersecretpasswordfile'' comme '$ _GET ['id']'? – Wrikken
Ce message est difficile à lire lorsque vous utilisez "teh" tout le temps. L'orthographe correcte n'est pas difficile à trouver surtout avec Firefox et Chrome ayant des vérificateurs d'orthographe intégrés. Si l'anglais n'est pas votre langue maternelle, eh bien, je suggère un vérificateur d'orthographe en tout cas parce qu'il se détériore de votre poste et le rendre beaucoup plus difficile pour quelqu'un d'aider/comprendre. (Ne signifie pas flamber ou quoi que ce soit, juste fournir une critique utile pour les prochains messages) –
Fixt. Ça m'a énervé aussi. – cHao