2013-09-16 7 views
5

की ओर जाता है, हमें निम्नलिखित की आवश्यकता है:जांचें कि क्या यूआरएल फ़ाइल या पृष्ठ

यदि यह वास्तव में एक फ़ाइल है तो एक यूआरएल से एक फ़ाइल डाउनलोड करें। अन्यथा यदि यह पृष्ठ कुछ भी नहीं करता है।

एक त्वरित उदाहरण मैं निम्नलिखित एक फाइल डाउनलोड करने के लिए मिल गया है के लिए:

My.Computer.Network.DownloadFile(
"http://www.wired.com/wiredenterprise/wp-content/uploads/2013/07/ff_googleinfrastructure_large.jpg", 
"d:\ff_googleinfrastructure_large.jpg") 

लेकिन अगर हम उदाहरण के लिए किसी सामान्य वेब पृष्ठ मिला "http://www.google.com" यह सिर्फ पेज डाउनलोड करेगा जो कुछ हम करते है नहीं चाहता।

तो मैं कैसे पता लगा सकता हूं कि कोई URL किसी पृष्ठ के बजाय फ़ाइल का नेतृत्व करेगा या नहीं?

यह किसी भी प्रकार की फ़ाइल हो सकती है ताकि यह जांच हो कि यूआरएल .zip या .jpg या .docx या ... के साथ समाप्त होता है या नहीं।

वीबी.नेट या सी # में उत्तर दोनों स्वागत है, यही कारण है कि मैंने दोनों को चिह्नित किया।

+3

एक पृष्ठ एक और प्रकार की फ़ाइल है। आपका मानदंड वास्तव में क्या है? क्या आप सभी टेक्स्ट फ़ाइलों को अनदेखा करना चाहते हैं, या सिर्फ किसी भी पेज जिसमें HTML शामिल है, या कुछ अलग है? उदाहरण के लिए, '.css' फ़ाइल के बारे में क्या? या एक '.jpg' जो एक पृष्ठ का हिस्सा है? आखिर में मुझे संदेह है कि आप कुछ MIMEType से संबंधित हैं, लेकिन आप वास्तव में स्पष्ट आवश्यकता नहीं दे रहे हैं। –

+0

क्षमा करें, मैं यह सब स्पष्ट नहीं था, मुझे वास्तव में यह पता लगाना था कि क्या यह एक HTML पृष्ठ या किसी अन्य प्रकार की फ़ाइल है और फिर फ़ाइल डाउनलोड करने के लिए आगे बढ़ें यदि यह एक HTML फ़ाइल नहीं है। –

उत्तर

9

समय से पहले, कोई 100% सटीक तरीका नहीं है। आप विस्तार की जांच कर सकते हैं (माना जाता है कि एक है), लेकिन यह भी 100% मूर्खतापूर्ण नहीं है।

आप अनुरोध बनाने के लिए और content-type हेडर की जांच करने और फाइल को डाउनलोड की जमानत यदि मान text/html या कुछ text माइम प्रकार है सकता है। जैसा कि ओलिडिस नीचे बताते हैं, आप HEAD अनुरोध केवल प्रतिक्रिया शीर्षलेख प्राप्त करने के लिए अनुरोध कर सकते हैं और फिर तय कर सकते हैं कि आप उस बिंदु पर फ़ाइल को पूरी तरह से डाउनलोड करना चाहते हैं।

+2

या, यदि यह आपके उद्देश्य के अनुरूप है, तो केवल इस पोस्ट में वर्णित एमआईएमई को खोजने के लिए 'HEAD' अनुरोध करें: http://stackoverflow.com/questions/14030245/c-sharp-get-content-type-of -ए-प्रतिक्रिया-बिना लोडिंग-पूरी सामग्री – olydis

+0

धन्यवाद यह वही है जो मुझे चाहिए! जब मैं कर सकता हूं तो मैं आपका जवाब स्वीकार करूंगा। –

संबंधित मुद्दे