CSV dosyasını indirmek için istenir olmak değil

4 Cevap php

Ben bu dosyaya doğrudan bağlantılı basit bir köprüyü, tıklayarak indirilebilir bir CSV dosyası oluşturur WordPress özel bir çözüm oluşturduk. Bunun yerine bilgisayara dosya indirmek için istenir olma; CSV yerine tarayıcı penceresinde açılır.

FWIW vanilya WordPress kurulumu kullanarak Media Temple gidiyorum.

4 Cevap

Uygun mime türünü gönder

header('Content-type: text/csv');

Ve indirmek için bunu söylemek için Content-Disposition başlığını kullanabilirsiniz: http://www.jtricks.com/bits/content_disposition.html

header('Content-Disposition: attachment; filename="mycssfile.csv"');

Her zaman onunla ilgili sorunlar olabilir uygun mime türünü, aksi takdirde güvenlik duvarları, anti-virüs yazılımı ve bazı tarayıcılar göndermek istiyorum ...

Content-türünü değiştirmek için PHP'nin header() işlevini kullanabilirsiniz

header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="myFile.csv"');

Yukarıdaki kod indirmek için kullanıcıya bir istemi zorlar. myFile.csv indirdiğiniz istediğiniz dosyanın yolu ile değiştirilir olmalıdır nerede.

Bu çalışır:

$filename = 'export.csv';
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename='.$filename);

Ayrıca, ben şahsen sitelerine bağlantılar sevmiyorum, ben düğmeleri gibi. Eğer bir düğme ihracat fonksiyonu için yapmak isterseniz kodu altında kullanabilirsiniz. Bu ilk defa anlamaya bana biraz aldı, çünkü ben sadece bunu yayınlamak düşündüm :)

<input type="button" value="Export to CSV" onClick="window.location.href='something.php?action=your_action';"/>

Sen tarayıcılarla application/csv bir MIME türü göndermek gerekir bu yüzden OS önerir (veya kullanıcı seçer) ne olursa olsun dosya taşıma sorumluluğunu yükünü üstlenecek.

PHP (herhangi bir çıktı istemciye gönderilmeden önce) in:

header('Content-type: application/csv');