Ich habe ein Verzeichnis ./Logs, wo ich Dateien vom Server protokolliere und auch dem Client alle Dateinamen anzeigen, Jetzt hat jede Datei Download-Option vom Client, so wenn Benutzer Aufruf Download-Methode Ich sende Dateiname an den Server-Route als Param und suchen Sie nach Datei im angegebenen Pfad mit forEach on./Logs Verzeichnis Ich bin in der Lage, Dateiname, der vom Client kommt und in der Lage zu drucken als data
so bis hier funktioniert, jetzt sehe ich den Fehler Pfad muss absolut sein, Any Idee Wie kann ich eine angepasste Datei zum Download an den Client senden?Wie sendFile aus dem Verzeichnis, wenn Routenparameter mit dem Dateinamen übereinstimmen?
angularFactory.js
getFile:function(file_name){
return $http.get("/file?file_name="+file_name);
}
app.js
app.get('/file', function (req, res) {
var dir = './ditLogs';
var root = path.resolve('./ditLogs');
var fileName = req.query.file_name;
var data;
fs.readdir(dir, function(err, items) {
items.forEach(function(file){
if(fileName === file){
data = file;
console.log('DATA',data);
res.setHeader('Content-Disposition', 'attachment; filename=' + data);
res.sendFile(data, {root: root});
// res.sendFile(path.resolve(dir + '/' + data));
// res.sendFile(data, {root: root});
console.log(data);
}
});
});
});
Fehler
throw new TypeError('path must be absolute or specify root to res.sendFile');
^
Wenn Sie Express verwenden, sollten Sie das wahrscheinlich als Tag hinzufügen. – Paul