CSV MIME- प्रकार का उपयोग कैसे करें?


125

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

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

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

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

क्या मैं इससे अनजान हूँ?

जवाबों:


219

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

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

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


12

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

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

5

इंटरनेट एक्सप्लोरर के साथ आपको अक्सर प्रज्ञा को निर्दिष्ट करना होगा: सार्वजनिक हेडर और साथ ही डाउनलोड ठीक से काम करने के लिए।

header('Pragma: public');

बस मेरे 2 सेंट ।।


5
प्रगति: इंटरनेट एक्सप्लोरर के लिए जनता का कोई मतलब नहीं है। (मैंने प्रश्न में घटक पर काम किया, और मैंने स्रोत को पकड़ लिया)।
एरिकाव

संभवतः इस की वास्तविक उपयोगिता एक अजीब प्रागम् को बदलने के लिए है: नो-कैश हेडर?
चल रहा

2

इस कोड का उपयोग 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"');

2
"ऑक्टेटस्ट्रीम" का अर्थ "ऑक्टेट-स्ट्रीम" है
एरिकलाव

2
यह कुछ ब्राउज़रों में चेतावनी का कारण बन सकता है: संसाधन को दस्तावेज़ के रूप में व्याख्या किया गया लेकिन MIME प्रकार के आवेदन / ऑक्टेट-स्ट्रीम
mikeschuld के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.