utiliser l'invite du navigateur pour télécharger un fichier
J'ai un php/mysql du site dans lequel je suis en train de télécharger un fichier délimité par des virgules (CSV). Le fichier csv-je créer contient délimitée par des virgules de données (nom, adresse, ville, état). J'ai créer le fichier csv ok et le placer dans le site /répertoire des téléchargements. So far So good. J'ai été à la recherche en ligne et le code pour déclencher le navigateur de l'invite de téléchargement que je vois le plus souvent est:
$path = $_SERVER['DOCUMENT_ROOT'];
$exportfile = "emailclientaddresses.csv";
$fullpath = "downloads/" . $exportfile;
header("Content-type: text/plain");
header("Content-Length: ".filesize($exportfile));
header("Content-Disposition: attachment; filename=" . $fullpath);
$Exportfile est le fichier csv que mon code créé. C'est ok. Ce que ce n'est:
- $Fullpath est affiché dans le navigateur télécharger invite dans un très bizarre format: download_emailclientaddresses.csv
- Quand il n'a télécharger, la page web en cours est téléchargé ou une combinaison de fichier csv et de la page web actuelle.
OK, j'ai essayé beaucoup de choses et rien n'a fonctionné. Donc, si quelqu'un peut m'aider, j'apprécierais. Merci.
ed Cohen
source d'informationauteur Ed Cohen
Vous devez vous connecter pour publier un commentaire.
La La documentation PHP fournit un bon exemple:
MODIFIER (Réponse aux commentaires, explications)
Ne s'affichent pas dans le navigateur, mais le transfert du fichier.
Fichier est un fichier binaire.
Les navigateurs généralement de télécharger des fichiers binaires, sauf s'ils peuvent les afficher.
Faire de la boîte de dialogue téléchargement de montrer le bon nom de fichier.
Remarque: Vous pouvez utiliser n'importe quel nom de fichier.
Fichier ne doit pas être mis en cache par le navigateur.
Cache pourrait causer des problèmes en cas de contenu dynamique.
Envoyer la bonne taille de fichier dans le navigateur,
sinon, le navigateur est incapable d'estimer le transfert en temps.
Assurez-vous que les en-têtes sont à envoyer au navigateur avant que le téléchargement commence.
Envoyer le fichier dans le navigateur.
Fait 🙂