मैं विशिष्ट फ़ाइल नाम के साथ बैकएंड से आने वाली .csv फ़ाइल को डाउनलोड करने का प्रयास कर रहा हूं। मैं कोणीय 7 का उपयोग करके एपीआई प्रतिक्रिया शीर्षलेख से फ़ाइल नाम तक कैसे पहुंच सकता हूं?

enter image description here

मेरी सेवा (एपीआई कॉल):

 public getDownloadFile(masterDistributorId: number, runDate: string) {
    return this.http.get
      (`${environment.apiUrl}command-center/report/download/? 
         masterDistributorId=${masterDistributorId}&runDate=${runDate}`, {
        headers: new HttpHeaders().append('Content-Type', 'application/csv'),
        responseType: 'blob',
        observe: 'response'
      }
      );
  }

मेरी सदस्यता कॉल:

 public Download(row: DistributorItem) {
    console.log(row.masterDistributorId);
    console.log(this.RunDate);
    this.CommandService.getDownloadFile(row.masterDistributorId, this.RunDate).subscribe(res => {
      console.log(res.headers);
      this.SaveFile(res);
    });
  }
0
Mohib Shaik 14 फरवरी 2020, 22:19
ShowConfigResponse () this.configService.getConfigResponse () // resp प्रकार का है HttpResponse<Config>। सदस्यता लें (resp => {// इसके हेडर कास्ट कीज प्रदर्शित करें = resp.headers.keys (); यह। हेडर = कुंजियाँ .map(key => ${key}: ${resp.headers.get(key)}); // सीधे बॉडी एक्सेस करें, जिसे Config टाइप किया गया है। this.config = {... resp.body}; }); } अधिक विवरण के लिए angular.io/guide/http पर जाएं।
 – 
Raj Kumar
15 फरवरी 2020, 00:28

1 उत्तर

प्रतिक्रिया शीर्षलेख मान प्राप्त करें: पूरा जवाब पढ़ना

key = 'content-disposition';
contentDisposition = response.headers.get(key)

स्प्लिट हेडर सामग्री स्वभाव स्ट्रिंग: String.prototype। विभाजित ()

filename = contentDisposition.split("=")[1];

आपका मुकदमा:

    this.CommandService.getDownloadFile(row.masterDistributorId, this.RunDate).subscribe(res => {
      let filename = res.headers.get('content-disposition').split("=")[1];
      console.log(filename);
      this.SaveFile(res);
    });
0
Kahou 15 फरवरी 2020, 12:36
1
हालांकि यह कोड प्रश्न को हल कर सकता है, एक स्पष्टीकरण सहित यह समस्या कैसे और क्यों हल करता है, वास्तव में आपकी गुणवत्ता में सुधार करने में मदद करेगा पोस्ट, और शायद अधिक अप-वोट में परिणाम। याद रखें कि आप भविष्य में पाठकों के लिए प्रश्न का उत्तर दे रहे हैं, न कि केवल उस व्यक्ति के लिए जो अभी पूछ रहा है। स्पष्टीकरण जोड़ने के लिए कृपया अपने उत्तर को संपादित करें करें और संकेत दें कि कौन सी सीमाएं और धारणाएं लागू होती हैं। समीक्षा से
 – 
double-beep
14 फरवरी 2020, 23:41
लेकिन मैं इस let filename = res.headers.get('content-disposition').split("=")[1]; का उपयोग करके फ़ाइल नाम में शून्य हो रहा हूं लेकिन मुझे नेटवर्क टैब में सामग्री-स्वभाव मिल रहा है।
 – 
Mohib Shaik
17 फरवरी 2020, 09:41
इस कुंजी 'Cसामग्री-Disposition' का उपयोग करने का प्रयास करें।
 – 
Kahou
17 फरवरी 2020, 10:30