इस स्थिति में, मैंने खोज परिणाम फ़ाइलों वाली एक ज़िप फ़ाइल बनाई है, और मैं इसे उपयोगकर्ता को भेजने की कोशिश कर रहा हूं। यहां कोड का हिस्सा है जिसे मैं वर्तमान में उपयोग करने का प्रयास कर रहा हूं।प्रतिक्रिया आउटपुट स्ट्रीम के माध्यम से मैं ब्राउज़र में ज़िप फ़ाइल कैसे वापस कर सकता हूं?
File[] zippable = new File[files.size()];
File resultFile = ZipCreator.zip(files.toArray(zippable), results);
InputStream result = new FileInputStream(resultFile);
IOUtils.copy(result, response.getOutputStream());
हालांकि, यह वर्तमान में काफी सही काम नहीं करता है। मैंने जो ज़िप फ़ाइल बनाई है उसे वापस करने के बजाय, यह एक HTML फ़ाइल देता है। यदि मैं मैन्युअल रूप से फ़ाइल एक्सटेंशन को मैन्युअल रूप से बदलता हूं, तो मैं देख सकता हूं कि फ़ाइल की सामग्री अभी भी खोज परिणामों की आवश्यकता है। तो समस्या सिर्फ प्रतिक्रिया के उचित विस्तार को वापस करने में निहित है।
क्या किसी को इस स्थिति के लिए कोई सलाह है?
मुझे लगता है कि मैं आपको यहां गलत व्याख्या कर सकता हूं। मैंने कोड में एक पंक्ति जोड़ दी है, इसलिए अब यह 'response.setHeader ("सामग्री-प्रकार", "एप्लिकेशन/ज़िप") पढ़ता है; ' फिर भी कोई सफलता नहीं है। यह कॉल IOUtils.copy पर कॉल करने से ठीक पहले किया जा रहा है। – Bennie
@ बेनी: अच्छा लग रहा है, लेकिन फिर, ज़िप फ़ाइल के लिए उपयोग करने के लिए "दाएं" एमआईएम प्रकार के बारे में कुछ भ्रम है, इसलिए आप उन मानों के साथ खेलना चाहेंगे । – maerics
ठीक है, ऐसा लगता है कि यह फ़ाइल को वापस करने के लिए कम से कम काम कर रहा है। हालांकि यह एक अजीब चीज कर रहा है, जहां फ़ाइल को "exportZipSearchResults.htm.zip" कहा जाता है। क्या प्रतिक्रिया पर फ़ाइल नाम बदलने का एक अंतर्निहित तरीका है? – Bennie