मैं स्थानीय रूप से चलने वाले वेब पेज पर स्थानीय फ़ाइल का लिंक कैसे बना सकता हूं?


155

मैं एक ऐसी html फाइल रखना चाहता हूं जो मेरी हार्ड ड्राइव में बिखरी हुई कुछ फाइलों को व्यवस्थित करती है। उदाहरण के लिए, मेरे पास दो फाइलें हैं जिनसे मैं लिंक करूंगा:

  • C:\Programs\sort.mw
  • C:\Videos\lecture.mp4

समस्या यह है कि मैं फ़ाइल के शॉर्टकट के रूप में कार्य करना चाहता हूँ। मैंने निम्नलिखित कोशिश की है:

<a href="C:\Programs\sort.mw">Link 1</a>
<a href="C:\Videos\lecture.mp4">Link 2</a>

... लेकिन पहला लिंक कुछ नहीं करता है और दूसरा लिंक क्रोम में फ़ाइल खोलता है, वीएलसी नहीं।

मेरे प्रश्न हैं:

  1. क्या फ़ाइलों को शॉर्टकट के रूप में लिंक करने के लिए मेरे HTML को समायोजित करने का कोई तरीका है?

  2. यदि HTML को समायोजित करने का कोई तरीका नहीं है, तो क्या हार्ड ड्राइव में बिखरी हुई फ़ाइलों के साथ बड़े करीने से लिंक किए गए तरीके हैं?

मेरा कंप्यूटर विंडोज 7 चलाता है और मेरा वेब ब्राउज़र क्रोम है।

जवाबों:


259

file:///यदि आप स्थानीय फ़ाइलों से लिंक करना चाहते हैं, तो आपको प्रोटोकॉल का उपयोग करने की आवश्यकता है (हाँ, यह तीन स्लैश है)।

<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>

ये स्वचालित रूप से आपके स्थानीय एप्लिकेशन में फ़ाइल को कभी नहीं खोलेंगे। यह सुरक्षा कारणों के लिए है जिसे मैं अंतिम अनुभाग में शामिल करूंगा। यदि यह खुलता है, तो यह केवल ब्राउज़र में कभी खुलेगा। यदि आपका ब्राउज़र फ़ाइल को प्रदर्शित कर सकता है, तो यह, अन्यथा यह आपसे पूछेगा कि क्या आप फ़ाइल डाउनलोड करना चाहते हैं।

कई ब्राउज़रों के आधुनिक संस्करण (जैसे फ़ायरफ़ॉक्स और क्रोम) दुर्भावनापूर्ण व्यवहार को रोकने के लिए http प्रोटोकॉल से फ़ाइल प्रोटोकॉल को पार करने से इनकार करेंगे। यदि आप यह सब करना चाहते हैं तो आपको फ़ाइल प्रोटोकॉल का उपयोग करके स्थानीय रूप से अपना वेबपेज खोलना होगा।

इसके बिना अटकता क्यों है file:///?

URL का पहला भाग प्रोटोकॉल है। एक प्रोटोकॉल कुछ अक्षर है, तो एक बृहदान्त्र और दो स्लैश। HTTP://और FTP://मान्य प्रोटोकॉल हैं; C:/नहीं है और मुझे पूरा यकीन है कि यह ठीक से एक जैसा नहीं है।

C:/एक वैध वेब पता भी नहीं है। ब्राउज़र मान सकता है कि यह http://c/निर्दिष्ट रिक्त पोर्ट के साथ है, लेकिन वह विफल हो रहा है।

आपका ब्राउज़र यह नहीं मान सकता है कि यह एक स्थानीय फ़ाइल का जिक्र है। उस धारणा को बनाने का बहुत कम कारण है क्योंकि सार्वजनिक साइटें आमतौर पर लोगों की स्थानीय फ़ाइलों से लिंक करने का प्रयास नहीं करती हैं।

इसलिए यदि आप स्थानीय फ़ाइलों का उपयोग करना चाहते हैं: तो इसे फ़ाइल प्रोटोकॉल का उपयोग करने के लिए कहें।

तीन स्लैश क्यों?

क्योंकि यह फाइल यूआरआई योजना का हिस्सा है । आपके पास पहले दो स्लैश के बाद होस्ट को निर्दिष्ट करने का विकल्प है। यदि आप किसी होस्ट को निर्दिष्ट करना छोड़ देते हैं तो यह मान लेगा कि आप अपने पीसी पर किसी फ़ाइल का जिक्र कर रहे हैं। यह साधन के file:///C:/etcलिए एक शॉर्टकट है file://localhost/C:/etc

ये फ़ाइलें अभी भी आपके ब्राउज़र में खुलेंगी और यह अच्छा है

आपका ब्राउज़र इन फ़ाइलों का उसी तरह जवाब देगा जिस तरह से वे इंटरनेट पर कहीं भी उसी फ़ाइल का जवाब देंगे। ये फाइलें आपके डिफ़ॉल्ट फ़ाइल हैंडलर (जैसे एमएस वर्ड या वीएलसी मीडिया प्लेयर) में नहीं खुलेंगी, और आप फ़ाइल एक्सप्लोरर को फ़ाइल के स्थान को खोलने के लिए पूछने जैसे कुछ भी नहीं कर पाएंगे।

यह आपकी सुरक्षा के लिए एक बहुत अच्छी बात है।

आपके ब्राउज़र की साइटें आपके ऑपरेटिंग सिस्टम के साथ बहुत अच्छी तरह से बातचीत नहीं कर सकती हैं। एक अच्छा साइट खुला करने के लिए अपने मशीन बता सकते हैं lecture.mp4 में VLC.exe , एक दुर्भावनापूर्ण साइट खुला करने के लिए कह सकता है virus.bat में cmd.exe । या यह आपकी मशीन को कुछ अनइंस्टॉल। Exe फ़ाइलें चलाने के लिए कह सकता है या फ़ाइल एक्सप्लोरर को एक लाख बार खोल सकता है।

यह आपके लिए सुविधाजनक नहीं हो सकता है, लेकिन HTML और ब्राउज़र सुरक्षा वास्तव में आपके द्वारा किए जा रहे कार्यों के लिए डिज़ाइन नहीं किए गए थे। आप खुले में सक्षम होना चाहते हैं lecture.mp4 में VLC.exe बजाय एक डेस्कटॉप अनुप्रयोग लिखने पर विचार करें।


1
धन्यवाद जोनाथन क्या आप जानते हैं कि विकल्प के रूप में "फ़ोल्डर में फ़ाइल दिखाने" का कोई तरीका है?
ब्रायन फिट्जपैट्रिक

7
@ ब्रायन आपका ब्राउज़र आपके ओएस के साथ उस तरह से बातचीत नहीं कर सकता है, और आपको बहुत खुशी होनी चाहिए कि यह नहीं हो सकता है।
doppelgreener

23
लगता है कि क्रोम फ़ाइल का उपयोग करके स्थानीय फ़ाइलों को डाउनलोड नहीं करेगा: /// प्रोटोकॉल वैसे भी (आपको एक Not allowed to load local resourceत्रुटि दे रहा है )
Loupax

1
मैं इस "फ़ाइल: /// .. \ .. \ Sort.mw" की तरह एक लिंक देना चाहता हूं ताकि यह दो फ़ोल्डरों को वापस ले जाए और वहां फ़ाइल प्राप्त हो। क्योंकि हम ड्रॉपबॉक्स में शब्द फ़ाइल का उपयोग कर रहे हैं। तो क्या इसका कोई हल है।
मुर्तजा मुंशी

5
यह भी उल्लेख के लायक हो सकता है कि आप एक वेबसाइट (जैसे स्थानीय देव सर्वर) से एक स्थानीय फ़ाइल से लिंक नहीं कर सकते। फ़ोरम.mozillazine.org/viewtopic.php?f=9&t=1730
nuala

14

यदि आप अपने पीसी पर IIS चला रहे हैं तो आप उस निर्देशिका को जोड़ सकते हैं जिसे आप वर्चुअल निर्देशिका के रूप में पहुंचाने का प्रयास कर रहे हैं। ऐसा करने के लिए आप आईएसएस में अपनी साइट पर राइट-क्लिक करें और "वर्चुअल निर्देशिका जोड़ें" दबाएं। वर्चुअल फ़ोल्डर का नाम। वर्चुअल फ़ोल्डर को अपने स्थानीय पीसी पर अपने फ़ोल्डर स्थान पर इंगित करें। आपको उन क्रेडेंशियल्स की भी आपूर्ति करनी होगी जिनके पास विशिष्ट फ़ोल्डर तक पहुंचने के लिए विशेषाधिकार हैं। HOSTNAME \ उपयोगकर्ता नाम और पासवर्ड। उसके बाद आप अपनी साइट पर किसी अन्य फ़ाइल के रूप में फ़ाइल को वर्चुअल फ़ोल्डर में एक्सेस कर सकते हैं।

http://sitename.com/virtual_folder_name/filename.fileextension

वैसे, यह क्रोम के साथ भी काम करता है जो अन्यथा फ़ाइल-प्रोटोकॉल फ़ाइल को स्वीकार नहीं करता है: //

आशा है कि यह किसी की मदद करता है :)


उत्तर के लिए धन्यवाद! मैंने फ़ाइल: /// को एक फ़ाइल के लिए पथ से पहले रखा है, हालाँकि जब मैं उस पर क्लिक करता हूँ तो कुछ भी नहीं होता है। मुझे इसे Ctrl (नए टैब में) के साथ खोलना होगा। ऐसा क्यों है?
पिओटर कैज़ो

5

सर्वश्रेष्ठ पर जानकी

<a href="file://///server/folders/x/x/filename.ext">right click </a></td>

और फिर राइट क्लिक करें, "कॉपी लोकेशन" विकल्प चुनें, और फिर यूआरएल में पेस्ट करें।


क्या हम राइट क्लिक करने के लिए मजबूर हैं? एक रास्ता बस उस पर क्लिक करने के लिए मौजूद है?
बंडोलारस

1

2017 को वापस:

फाइल सिस्टम के लिए स्थानीय लिंक बनाने के लिए URL.createObjectURL (फ़ाइल) का उपयोग करें जो उपयोगकर्ता का चयन करता है;

URL.revokeObjectURL () का उपयोग करके मेमोरी को मुक्त करना न भूलें


फ़ाइल तर्क के लिए ब्राउज़र क्लाइंट जेएस रनटाइम के अंदर निर्मित वास्तविक फ़ाइल ऑब्जेक्ट की आवश्यकता होती है, जिसका अर्थ है कि हमें इसे पहले से ही ब्राउज़र क्लाइंट पर अपलोड करना होगा (उदाहरण के लिए फ़ाइल अपलोड फॉर्म नियंत्रण के माध्यम से)। जनरेट किया गया URL डाउनलोड करने या संदर्भित करने के लिए एक ब्लॉब URL है जो ब्राउज़र क्लाइंट के JS रनटाइम के अंदर मेमोरी में संग्रहीत है। यह एक स्थानीय फ़ाइल का लिंक बनाने में मदद करने वाला नहीं है; यह स्मृति में संग्रहीत एक प्रति के लिए एक कड़ी है (यदि हम इसे एक्सेस करने का प्रयास करते हैं तो एक बार अलग तरीके से व्यवहार नहीं करेंगे)।
डोपेलग्रेनर

बिल्कुल वही जो मुझे चाहिए था। फ़ाइल का चयन करने के लिए फ़ाइल इनपुट का उपयोग करें, फिर इसे createObjectURL का उपयोग करके टैब में खोलें।
टोनी लैग

0

मेरे पास एक तरीका है और इस तरह काम करता हूं:

<'a href="FOLDER_PATH" target="_explorer.exe">Link Text<'/a>

वह इंटरनेट एक्सप्लोरर में भी एक वैध लक्ष्य मूल्य की तरह नहीं दिखता है ।
doppelgreener

IE की अनदेखी (अमान्य) लक्ष्य (ऊपर)। IE10 के साथ ठीक काम करता है, 11: <a href="C:/tmp"> ड्राइव सी पर tmp का लिंक। </a>
प्रधानमंत्री

यह मेरे लिए अच्छी तरह से काम करता है, FOLDER_PATH के स्थान पर IE और नेटवर्क ड्राइव पथ जैसे 'फ़ाइल: // servername / path \ to \ folder' का उपयोग करता है। यदि आप 'target = "_ explorer.exe" को छोड़ते हैं, तो फ़ोल्डर explorer.exe के बजाय IE में खुलता है और यह खोजकर्ता को बहुत पसंद आता है।
जोनप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.