tepki dosyayı indirmek

oy
0

i laravel, böyle bu API kullanılarak oluşturulan bir dinlendirici bir API var:

http://127.0.0.1:8000/api/file/pdf/{id}

ve bu indirme için benim kodudur:

public function pdfDownload($id){
       $pdf = Cv::findOrfail($id);
       return Storage::download('public/pdf/'.$pdf->pdf);
    }

o postacı çalışmış ve ayrıca tarayıcıda, doğrudan dosyayı indirmek, ancak react.js ile, işe yaramaz olduğu, bu benim kod tepki:

pdfDownload = (id) => {
        fetch(' http://127.0.0.1:8000/api/file/pdf/' + id, {
            method: 'get',
            headers: {
                Accept: 'application/octet-stream',
                'Content-Type': 'application/octet-stream'
            }
        }).then((res) => res.json());
    };

ve ben böyle düğmesini bu işlevi çağırır:

<Button color=primary onClick={() => this.pdfDownload(data.id)}>
                                            Download
                                        </Button>

id i bundan emin değilim, düzeltilir, sorum bu düğmeyi tıkladığında i .. Thans dosyayı indirebilirsiniz nasıl olduğunu ...

Oluştur 20/10/2018 saat 14:02
kaynak kullanıcı
Diğer dillerde...                            


1 cevaplar

oy
-1

XHR çağrıları dosya karşıdan yükleme tetiklemek olamaz yolu tarayıcı bunu işler. Sen, javascript kodu kendiniz kullanarak aşağıdaki gibi bir şey kullanarak bir dosya indirme taklit etmek gerekir:

Referans

const url = window.URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'file.pdf');
document.body.appendChild(link);
link.click();

Eğer fazladan bağımlılık sakıncası yoksa Veya, Dosya Koruyucu paketini kullanın.

FileSaver NPM

Cevap 20/10/2018 saat 14:11
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more