php - सीएसवी एमआईएम-प्रकार का उपयोग कैसे करें?




csv http-headers (3)

एक वेब एप्लिकेशन में मैं काम कर रहा हूं, उपयोगकर्ता एक CSV फ़ाइल के लिंक पर क्लिक कर सकता है। माइम-प्रकार के लिए कोई हेडर सेट नहीं है, इसलिए ब्राउजर इसे टेक्स्ट के रूप में प्रस्तुत करता है। मैं इस फ़ाइल को .csv फ़ाइल के रूप में भेजना चाहता हूं, इसलिए उपयोगकर्ता इसे कैल्क, एक्सेल, gnumeric, आदि के साथ सीधे खोल सकता है।

header('Content-Type: text/csv');
echo "cell 1, cell 2";

यह कोड मेरे कंप्यूटर पर अपेक्षित काम करता है (यह नहीं है कि यह हमेशा कैसे होता है?) लेकिन यह किसी अन्य कंप्यूटर पर काम नहीं करता है।

मेरा ब्राउज़र एफएफ 3.0.1 (लिनक्स पर) का रात का निर्माण है। जिन ब्राउज़र में यह काम नहीं करता था वे आईई 7 और एफएफ 3.0 (विंडोज़ पर) थे

क्या कोई क्विर्क है जो मुझे अनजान है?


आप कुछ ऐसा करने के द्वारा ब्राउज़र को "इस रूप में सहेजें ..." संवाद खोलने के लिए मजबूर करने का प्रयास कर सकते हैं:

header('Content-type: text/csv');
header('Content-disposition: attachment;filename=MyVerySpecial.csv');
echo "cell 1, cell 2";

जो सबसे प्रमुख ब्राउज़रों में काम करना चाहिए।


आप भाषा या ढांचे को निर्दिष्ट नहीं कर रहे हैं, लेकिन निम्न हेडर फ़ाइल डाउनलोड के लिए उपयोग किया जाता है:

"Content-Disposition: attachment; filename=abc.csv"

इस कोड का उपयोग सीएसवी सहित किसी भी फाइल को निर्यात करने के लिए किया जा सकता है

// application/octet-stream tells the browser not to try to interpret the file
header('Content-type: application/octet-stream');
header('Content-Length: ' . filesize($data));
header('Content-Disposition: attachment; filename="export.csv"');




mime