2009-11-08 19 views
219

नोट:HTML में फ़ाइल इनपुट में कोई मान कैसे सेट करें?

जवाब & टिप्पणी नीचे 2009 में लिगेसी ब्राउज़र की स्थिति अब आप वास्तव में गतिशील रूप से फ़ाइल इनपुट तत्व का मान सेट कर सकते हैं/प्रोग्राम के जावास्क्रिप्ट और में एक DataTransfer या FileList वस्तु का उपयोग कर प्रतिबिंबित
How to set file input value programatically (i.e.: when drag-dropping files)?

मैं किस तरह निर्धारित कर सकते हैं: 2017

जानकारी के लिए इस सवाल में जवाब के साथ ही एक डेमो देखें इसका मूल्य?

<input type="file" /> 
+3

मैं यहाँ इस बारे में एक पूर्ण जिक्र किया गया और तारीख को अप-टू (डीईसी 2013) जवाब किया: [याद रखें और फ़ाइल इनपुट फिर से आबाद] (http: // stackoverflow।कॉम/ए/20537822/588079) – GitaarLAB

+2

संभावित डुप्लिकेट [प्रोग्राम इनपुट मूल्य को प्रोग्रामेटिक रूप से कैसे सेट करें (यानी: जब ड्रैग-ड्रॉप फाइलें)?] (https://stackoverflow.com/questions/47515232/how-to-set- फ़ाइल-इनपुट-मूल्य-प्रोग्रामेटिक-यानी-कब-ड्रैग-ड्रॉप-फाइलें) –

उत्तर

381

सुरक्षा कारणों से आप नहीं कर सकते हैं।

कल्पना कीजिए:

<form name="foo" method="post" enctype="multipart/form-data"> 
    <input type="file" value="c:/passwords.txt"> 
</form> 
<script>document.foo.submit();</script> 

आप वेबसाइटों आप ऐसा करने में सक्षम होने की यात्रा नहीं करना चाहती, है न? =)

+0

क्या आप इसे साफ़ कर सकते हैं? यह मुझे खराब करता है कि प्रत्येक बार जब मैं पुनरीक्षण करता हूं तो फाइल का नाम याद किया जाता है। कृपया देखें http://stackoverflow.com/questions/41807471/can-i-reset-the-seletced-file-name-of-an-html-5-file-selector – Mawg

+1

मैं सुरक्षा समस्या को समझता हूं, लेकिन नहीं होना चाहिए ब्राउजर एक खतरनाक स्थानीय फ़ाइलपैथ और डेटाउआरएल की तरह कुछ और निर्दोष के बीच अंतर करने में सक्षम हो सकता है? शायद यह एक पाइप-सपना है। – cowlinator

+3

ड्रैग एन ड्रॉप फ़ंक्शन के बारे में क्या, उस फ़ाइल को इनपुट फ़ील्ड में सेट करने का कोई तरीका नहीं है? – Vedmant

26

आप नहीं कर सकते। और यह एक सुरक्षा उपाय है। कल्पना करें कि कोई व्यक्ति जेएस लिखता है जो फ़ाइल इनपुट मान को कुछ संवेदनशील डेटा फ़ाइल में सेट करता है?

100

आप नहीं कर सकते।

फ़ाइल इनपुट का मान सेट करने का एकमात्र तरीका उपयोगकर्ता द्वारा फ़ाइल का चयन करने के लिए है।

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

41

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

  • वर्तमान मूल्य दिखाने सिर्फ फ़ाइल नाम या यूआरएल मुद्रण द्वारा इस क्षेत्र की, क्लिक करने योग्य लिंक इसे डाउनलोड करने, या यदि यह एक छवि है: बस इसे संभवतः झलक के रूप में दिखाने के लिए,
  • एक नई फ़ाइल
  • एक चेकबॉक्स अपलोड करने के लिए <input> टैग है कि, जब चेक किया गया, वर्तमान में अपलोड की गई फ़ाइल हटा देता है। ध्यान दें कि 'खाली' फ़ाइल अपलोड करने का कोई तरीका नहीं है, इसलिए आपको फ़ील्ड के मान
-3

वास्तव में हम इसे कर सकते हैं। हम FormToMultipartPostData लाइब्रेरी का उपयोग कर C# में वेबब्रोसर नियंत्रण का उपयोग कर फ़ाइल मान डिफ़ॉल्ट सेट कर सकते हैं। हमें इस प्रोजेक्ट में इस लाइब्रेरी को डाउनलोड और शामिल करना होगा। वेबब्रोसर उपयोगकर्ता को वेब पेजों को फॉर्म के अंदर नेविगेट करने में सक्षम बनाता है। वेब पेज लोड होने के बाद, वेब ब्रॉसर 1_DocumentCplepleted के अंदर की स्क्रिप्ट निष्पादित की जाएगी। तो,

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
    { 
     FormToMultipartPostData postData = 
      new FormToMultipartPostData(webBrowser1, form); 
     postData.SetFile("fileField", @"C:\windows\win.ini"); 
     postData.Submit(); 
    } 

को डाउनलोड करने और संपूर्ण संदर्भ के नीचे दिए गए लिंक का संदर्भ लें।

https://www.codeproject.com/Articles/28917/Setting-a-file-to-upload-inside-the-WebBrowser-com

+0

समाधान के लिए एक लिंक का स्वागत है, लेकिन कृपया सुनिश्चित करें कि आपका उत्तर है इसके बिना उपयोगी: [लिंक के चारों ओर संदर्भ जोड़ें] (// meta.stackexchange.com/a/8259/165483) तो आपके साथी उपयोगकर्ताओं को कुछ पता होगा कि यह क्या है और यह क्यों है, फिर सबसे प्रासंगिक भाग उद्धृत करें जिस पृष्ठ पर आप लिंक पेज अनुपलब्ध हैं, उस पृष्ठ से लिंक कर रहे हैं। [उत्तर जो किसी लिंक से थोड़ा अधिक हटा दिए जा सकते हैं।] (// stackoverflow.com/help/deleted-answers) –

+0

यह भी देखें [प्रोग्राम इनपुट मूल्य को प्रोग्रामेटिक रूप से कैसे सेट करें (यानी: ड्रैग-ड्रॉप फ़ाइलों को कब)?] (https://stackoverflow.com/q/47515232/584192) –

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