2017-03-06 1 views
2

ich versuche:Wie externe Datei zu senden, verwenden Sie einfach URL (https: // .....)

.post("/getAttachments", (req, res, next) => { 
 
    repository.getAttachments(req.body) 
 
     .then((attachment) => { 
 
     return res.sendFile('https://host.com' + attachment.req.path);    
 
     }) 
 
     .catch(next); 
 
    }) 
 
///clientService: 
 
function getAttachments(params) { 
 
     return $http.post(baseUrl + "/getAttachments", params, {responseType: 'arraybuffer'}).success(function (data) { 
 
     let blob = new Blob([data], {type: 'application/vnd.ms-excel'}); 
 
     saveAs(blob); 
 
     }); 
 
    };

alle Arbeiten für lokale Dateien. Bitte Können Sie damit helfen?

Antwort

3

res.sendFile funktioniert nur für lokale Dateien. Für die Remote-Datei würden Sie brauchen so etwas wie:

request('https://host.com' + attachment.req.path).pipe(res); 

mit request Modul:

Vergewissern Sie sich, dass Sie richtig Header senden und einige Fehlerbehandlung hinzufügen.

Eine andere Möglichkeit wäre, den Benutzer auf die korrekte URL zu umleiten, anstatt sie zu senden:

res.redirect('https://host.com' + attachment.req.path); 

wenn der Client, dass die Datei ohne den Server laden Sie die Anfrage in der Mitte Proxying.

+0

danke, es ist wirklich hilfreich – aaaaaaaaax10