2009-06-19 18 views
64

क्या फ़ाइल इनपुट (<input type="file" />) का मान सेट करने का कोई तरीका है या क्या यह सभी सुरक्षा के लिए अवरुद्ध है? मैं एक साधारण बहु-अपलोडर बनाने के लिए Google gears 'openFiles का उपयोग करने का प्रयास कर रहा हूं।फ़ाइल इनपुट का गतिशील रूप से सेट मान

नोट:

जवाब (रों) नीचे 2009 में लिगेसी ब्राउज़र की स्थिति अब आप वास्तव में 2017

में गतिशील रूप से फ़ाइल इनपुट तत्व का मान सेट कर सकते हैं/प्रोग्राम के जावास्क्रिप्ट का उपयोग प्रतिबिंबित

जानकारी के लिए इस सवाल में जवाब के साथ-साथ एक डेमो देखें:
How to set file input value programatically (i.e.: when drag-dropping files)?

+1

मैं बहुत यकीन है कि तुम ठीक कह रहे हैं हूँ और इनपुट फ़ील्ड फ़ाइल केवल पढ़ा जाता है। –

+3

मैंने यहां एक पूर्ण संदर्भित और अद्यतित (डीसी 2013) उत्तर दिया है: [फ़ाइल इनपुट को याद रखें और दोबारा दोहराएं] (http://stackoverflow.com/a/20537822/588079) – GitaarLAB

+1

फिर से खोलें। 62 + 62 अपवॉट्स (+15 बुकमार्क्स का उल्लेख नहीं करना) का मतलब किसी के बारे में कुछ अजीब राय से अधिक है – Green

उत्तर

65

यह डायना करना संभव नहीं है मूल रूप से फ़ाइल फ़ील्ड के मान को बदलें, अन्यथा आप इसे "c: \ yourfile" पर सेट कर सकते हैं और फ़ाइलों को बहुत आसानी से चुरा सकते हैं।

हालांकि बहु-अपलोड प्रणाली के कई समाधान हैं। मुझे लगता है कि आप एक बहु-चयन खुले संवाद चाहते हैं।

शायद http://www.plupload.com/ पर एक नज़र डालें - यह एकाधिक फ़ाइल अपलोड के लिए एक बहुत ही लचीला समाधान है, और ड्रॉप जोन्स e.t.c. का समर्थन करता है।

+1

किसी ने यूआरएल को उस काम से बदल दिया है जो काम करता है। – JohnK

+0

मुझे लगता है कि यह उत्तर पुराना है। डिफ़ॉल्ट फ़ाइल सेट करना अब संभव नहीं है, क्योंकि इसे FileReader API के माध्यम से पढ़ा जा सकता है और XHR द्वारा भेजा जा सकता है। तथ्य यह है कि 'input.files' केवल पढ़ने योग्य है, शायद विरासत का मामला है। –

+0

प्रश्न को ध्यान में रखते हुए "क्या फ़ाइल इनपुट के मूल्य को सेट करने का कोई तरीका है"? और जवाब कहता है "यह संभव नहीं है" .. अभी भी पूरी तरह से वैध उत्तर नहीं है? FileReader API या XHR के साथ इसका क्या संबंध है? – Joel

0

मुझे इसी तरह की समस्या थी, फिर मैंने जावास्क्रिप्ट से इसे लिखने की कोशिश की और यह काम करता है! : referenceToYourInputFile.value = "" ;

+4

यह "काम" किस तरह से करता है? [मोज़िला डॉक्स] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#File_inputs) स्पष्ट रूप से कहता है, "आप एक स्क्रिप्ट से फ़ाइल पिकर का मान सेट नहीं कर सकते ; ऐसा कुछ करने से [इस] का कोई प्रभाव नहीं पड़ता है " – MrWhite

+6

... _clearing_ फ़ाइल चयन के अलावा। – MrWhite

+2

प्रश्न फ़ाइल इनपुट के मूल्य को सेट करने के बारे में है, इसे साफ़ नहीं कर रहा है। –

2

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

const imageElem = angular.element('#awardImg'); 

if (imageElem[0].files[0]) 
    vm.award.imageElem = imageElem; 
    vm.award.image = imageElem[0].files[0]; 

और फिर:

-1

मैं मामले में AngularJS के लिए कुछ इस तरह किसी को इस सवाल के पार ठोकर कर समाप्त हो गया

if (vm.award.imageElem) 
    $('#awardImg').replaceWith(vm.award.imageElem); 
    delete vm.award.imageElem; 
संबंधित मुद्दे