html एचटीएमएल इनपुट = "फ़ाइल" विशेषता फ़ाइल प्रकार स्वीकार करें (सीएसवी)



4 Answers

डोम यह विशेषता बहुत पुरानी है और जहां तक ​​मुझे पता है आधुनिक ब्राउज़र में स्वीकार नहीं किया गया है, लेकिन यहां इसका एक विकल्प है, इसे आजमाएं

<script type="text/javascript" language="javascript">
function checkfile(sender) {
    var validExts = new Array(".xlsx", ".xls", ".csv");
    var fileExt = sender.value;
    fileExt = fileExt.substring(fileExt.lastIndexOf('.'));
    if (validExts.indexOf(fileExt) < 0) {
      alert("Invalid file selected, valid files are of " +
               validExts.toString() + " types.");
      return false;
    }
    else return true;
}
</script>

<input type="file" id="file" onchange="checkfile(this);" />

मुझे लगता है कि यह निश्चित रूप से आपकी मदद करेगा आप इस स्क्रिप्ट को अपनी आवश्यकताओं के अनुसार बदल सकते हैं।

html csv file-upload input content-type

मैं उम्मीद कर रहा था कि कोई मेरी मदद कर सकता है।

मेरे पास मेरे पृष्ठ पर एक फ़ाइल अपलोड ऑब्जेक्ट है:

<input type="file" ID="fileSelect" />

मेरे डेस्कटॉप पर निम्न एक्सेल फाइलों के साथ:

  1. file1.xlsx
  2. file1.xls
  3. file.csv

मैं चाहता हूं कि फाइल केवल अपलोड करें .xlsx , .xls , और .csv फ़ाइलों को अपलोड करें।

accept विशेषता का उपयोग करके, मैंने पाया कि इन सामग्री-प्रकारों ने .xlsx और .xls एक्सटेंशन का ख्याल रखा है ...

accept = आवेदन / vnd.openxmlformats- officedocument.spreadsheetml.sheet (.XLSX)

accept = आवेदन / vnd.ms-excel (.XLS)

हालांकि, मुझे एक्सेल सीएसवी फ़ाइल के लिए सही सामग्री-प्रकार नहीं मिल रहा है! कोई सुझाव?

उदाहरण: http://jsfiddle.net/LzLcZ/




मैंने स्वीकार किए गए गुण में सीएसवी माइम-प्रकार के लिए text/comma-separated-values उपयोग किया है और यह ओपेरा में ठीक काम करता है। भाग्य के बिना text/csv कोशिश की।

सीएसवी के लिए कुछ अन्य एमआईएमई-प्रकार अगर सुझाए गए काम नहीं करते हैं:

  • पाठ / अल्पविराम से अलग मान
  • पाठ / सीएसवी
  • आवेदन / सीएसवी
  • आवेदन / एक्सेल
  • आवेदन / vnd.ms-एक्सेल
  • आवेदन / vnd.msexcel
  • पाठ / anytext

स्रोत: http://filext.com/file-extension/CSV




आप केवल निम्न कार्य करके किसी भी फ़ाइल के लिए सही सामग्री-प्रकार जान सकते हैं:

1) रुचि फ़ाइल का चयन करें,

2) और कंसोल में चलाएं:

console.log($('.file-input')[0].files[0].type);

आप एक समय में कई फाइलों के लिए सामग्री-प्रकार की जांच करने के लिए अपने इनपुट के लिए "एकाधिक" विशेषता भी सेट कर सकते हैं और अगला कर सकते हैं:

for (var i = 0; i < $('.file-input')[0].files.length; i++){
    console.log($('.file-input')[0].files[i].type);
}

विशेषता स्वीकार करने में कई गुणों के साथ कुछ समस्याएं हैं और इस मामले में सही तरीके से काम नहीं करती हैं।




अब आप नए एचटीएमएल 5 इनपुट सत्यापन विशेषता pattern=".+\.(xlsx|xls|csv)" उपयोग कर सकते हैं pattern=".+\.(xlsx|xls|csv)"




Related