CSV dosyası oluşturuluyor ve daha sonra indirmek için dosyayı zorluyor

4 Cevap

Ben aşağıdaki gibi benim uygulama çalışıyor, bir sorun var.

İlk csv dosyasının üreten başlamıştır kullanıcıya echo.

örn. echo 'Building of csv file started';

sonra csv dosyasını oluşturmak.

Şimdi indirmek için dosyayı zorlamak istiyorum, ve bu mükemmel çalışır.

Bu benim kodudur

    header('Content-Type: application/csv');
    header('Content-Disposition:attachment;filename='.$year.'_'.$month.'_'.'export.csv');
    header('Pragma: no-cache');

    echo readfile($myFile);

Hayır ilk echo 'csv dosyanın İnşaat başladı' CSV dosyasında yer alır ve bunu exlude nasıl bilmiyorum.

4 Cevap

The solution is really easy. As you want two different header types you have to create 2 different pages.

Görüntüleyen ilk sayfa "csv dosyası Binası başladı" ve ikinci sayfa ve gerçek csv dosyası ve eki başlığı ile ikinci bir sayfa ile bir iframe içeren.

HTTP üzerinden indirmek için hiçbir şey zorlayamaz. Bu HTTP nasıl çalıştığını değildir. Indirmek için bir şey istiyorsanız, o zaman bir kullanıcı isteğine yanıt olarak bir varlık olması gerekir. Bu kullanıcı açıkça indirme ya da yükleme bir AJAX isteğine yanıt olmalıdır isteği tetiklemek için bir şeyler yapmak gerektiği anlamına gelir.

Echo şey CSV gidecek. Sen eko ve aynı komut çıkışını bir CSV hem de yapamam.

Bir kullanıcı sayfanızda - onlar "CSV inşa" bağlantısını tıklayın. Sonra bir mesaj / modal / pop-up belirten aslında CSV oluşturur sayfasından ekonun kaldırabilirsiniz geri sunucu tarafında PHP "CSV dosyasının Binası başladı ..." göstermektedir ve bazı çok temel JS kullanarak kullanıcı dosya ile istenir.