Maison >interface Web >js tutoriel >Comment télécharger des fichiers avec des noms de fichiers et des extensions corrects à partir des serveurs Express.js ?
Télécharger des fichiers à partir de serveurs Express.js avec un nom de fichier et une extension complets
Dans Node.js, proposer un fichier à télécharger est simple, mais s'assurer qu'il porte le nom et l'extension de fichier corrects peut être un peu plus délicat.
Ancien Approche :
Lors de l'écriture d'un itinéraire de téléchargement de fichier à l'aide d'Express.js, vous devrez définir explicitement l'en-tête Content-Disposition pour fournir le nom et l'extension du fichier. De plus, vous souhaiterez peut-être inclure les en-têtes Content-Length et Content-Type pour une meilleure gestion :
app.get('/download', function(req, res) { const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`; res.setHeader('Content-disposition', 'attachment; filename=dramaticpenguin.MOV'); res.write(fs.readFileSync(file, 'binary')); res.end(); });
Express.js Helper :
Express.js maintenant inclut une méthode d'assistance appelée téléchargement qui simplifie le téléchargement du fichier processus :
app.get('/download', function(req, res) { const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`; res.download(file); // Sets 'Content-Disposition' and sends the file });
Améliorations :
Pour des fonctionnalités plus avancées, vous pouvez utiliser des bibliothèques tierces telles que le chemin et le mime pour déterminer automatiquement le nom du fichier, l'extension du fichier, et tapez MIME :
const path = require('path'); const mime = require('mime'); app.get('/download', function(req, res) { const file = `${__dirname}/upload-folder/dramaticpenguin.MOV`; const filename = path.basename(file); const mimetype = mime.getType(file); res.setHeader('Content-disposition', 'attachment; filename=' + filename); res.setHeader('Content-Type', mimetype); res.download(file); });
Cette approche garantit que votre fichier téléchargé a toujours le nom et l'extension de fichier corrects, quel que soit son emplacement sur le serveur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!