JQuery এ ইনপুট ফাইলটি খালি কিনা তা কীভাবে পরীক্ষা করবেন


104

জেএসে একেবারে নতুন।
আমি jQuery / জাভাস্ক্রিপ্ট সহ ফর্ম জমা দেওয়ার সময় ফাইল ইনপুট উপাদানটি খালি কিনা তা খতিয়ে দেখার চেষ্টা করছি। আমি একগুচ্ছ সমাধানের মধ্য দিয়ে চলেছি এবং কিছুই আমার পক্ষে কাজ করছে না। আমি এড়াতে চেষ্টা করছি /c/fakepath(অন্য কোনও বিকল্প না থাকলে)

<input type="file" name="videoFile" id="videoUploadFile" />

এটা কাজ করে না:

var vidFile = $("#videoUploadFile").value;

আমি নিম্নলিখিতটি ব্যবহার করলে ফাইল নামটি পাবার একমাত্র উপায় হ'ল:

var vidFile = document.getElementById("videoUploadFile").files[0].name;

যদি কোনও ফাইল উপলব্ধ না থাকে তবে কোডটি একটি ত্রুটি ছুড়ে ফেলে:

অপরিজ্ঞাতকৃত সম্পত্তি নাম পড়তে পারে না

অ্যারে সেট করা না হওয়ায় এটি বোঝায়। তবে আমি কীভাবে এটির সাথে কোনও ত্রুটি পরিচালনা করে তা বুঝতে পারি না।

আমি কীভাবে ফাইল ইনপুট উপাদানটি সঠিকভাবে ধরব videoUploadFile, এটি খালি আছে কিনা তা খতিয়ে দেখি, খালি থাকলে কোনও ত্রুটি বার্তা নিক্ষেপ করব?


7
চেক .files.length?
টিমু

4
কেউ কেন এই প্রশ্নটিকে নিম্নচাপিত করবে? আমি মাঝে মাঝে এসও বুঝতে পারি না। আমি আপনাকে আবার 0 এ
উন্নীত করেছি

আপনি যদি ফর্মটিতে একাধিক থাকে তবে আপনি খালি খালি ফাইলগুলিও ফিল্টার করতে পারবেন:var files = $('#formbody').find('input[type=file]').filter(function() { return $(this)[0].files.length > 0; });
পাইোটার কোওলস্কি

উত্তর:


185

কেবলমাত্র ফাইলগুলির সম্পত্তিটির দৈর্ঘ্য পরীক্ষা করুন , যা ইনপুট উপাদানটিতে থাকা ফাইললিস্ট অবজেক্ট

if( document.getElementById("videoUploadFile").files.length == 0 ){
    console.log("no files selected");
}

4
( document.getElementById("videoUploadFile").files.length === 0 )
পাঠরোস

144

এটির jQuery সংস্করণ এখানে:

if ($('#videoUploadFile').get(0).files.length === 0) {
    console.log("No files selected.");
}

4
ওপি একটি জিকুয়েরির সমাধান চেয়েছিল বলে এই উত্তরটি আরও উপযুক্ত more
হুসেন আকবর

$('#videoUploadFile').get(0)একই হিসাবে $('#videoUploadFile')[0]তবে সম্ভবত get()কিছু
বিচক্ষণতা

18

ফাইল দৈর্ঘ্যের সম্পত্তি ব্যবহার করে ইনপুট ফাইলটি খালি আছে কিনা তা যাচাই করার জন্য, indexনিম্নলিখিতগুলির মতো নির্দিষ্ট করা উচিত:

var vidFileLength = $("#videoUploadFile")[0].files.length;
if(vidFileLength === 0){
    alert("No file selected.");
}

4

আমি জানি যে আমি পার্টিতে দেরি করেছি তবে আমি ভেবেছিলাম যে আমি এর জন্য যা ব্যবহার করেছিলাম তা যুক্ত করব - যা ফাইল আপলোড ইনপুটটিতে অপারেটর এবং জিকুয়ের মতো সত্যিকারের মূল্য নেই কিনা তা খতিয়ে দেখা উচিত:

if (!$('#videoUploadFile').val()) {
  alert('Please Upload File');
}

মনে রাখবেন যে এটি যদি কোনও ফর্মে থাকে তবে আপনি ফর্মটি জমা দিতে বাধা দিতে নিম্নলিখিত হ্যান্ডলারের সাহায্যে এটি মোড়ানোও করতে পারেন:

$(document).on("click", ":submit", function (e) {

  if (!$('#videoUploadFile').val()) {
  e.preventDefault();
  alert('Please Upload File');
  }

}

3

প্রশ্ন: ফাইল খালি আছে কিনা তা কীভাবে পরীক্ষা করবেন?

উত্তর: আমি এই Jquery কোডটি ব্যবহার করে এই সমস্যাটি স্লুভ করেছি

//If your file Is Empty :     
      if (jQuery('#videoUploadFile').val() == '') {
                       $('#message').html("Please Attach File");
                   }else {
                            alert('not work');
                   }

    
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="file" id="videoUploadFile">
<br>
<br>
<div id="message"></div>


4
এটি কেন কাজ করবে বা মূল প্রশ্নে কী ভুল ছিল তা সম্পর্কে আরও ব্যাখ্যা এই উত্তরের গুণমানকে বাড়িয়ে তুলতে সহায়তা করবে।
জোশ বুর্গেস

@ জোশ বার্গেস এই উত্তরটি ছিল যে কীভাবে ফাইল ফাঁকা আছে তা যাচাই করা যায় কি না আপনি যখন জিকিউরি ব্যবহার করে ফর্ম জমা দেন তখন আপনার ফাইলটি পরীক্ষা করার অন্য উপায় way
আদনান লিমদিওয়ালা

@ জোশবার্গেস ওপি জিক্যুরিতে এটি কীভাবে করবেন তা জিজ্ঞাসা করছেন। অন্য সমস্ত উত্তরগুলি ভ্যানিলা জেএস বা জেএস এবং জিকুয়েরির কম্বো ব্যবহার করে। এই একমাত্র ব্যক্তি যিনি একচেটিয়াভাবে jQuery ব্যবহার করেন। সম্ভবত আমি পিক, তবে আমার যদি সত্যিই না না হয় তবে আমি ভ্যানিলা জেএসের সাথে jQuery মিক্স করতে পছন্দ করি না।
এডুয়ার্ড লুকা

উত্তর এটি তখন নিম্ন মানের হিসাবে পতাকাঙ্কিত হয়েছিল। কোডটির একটি ব্যাখ্যা সাধারণত এসও সম্প্রদায় দ্বারা প্রশংসা করা হয়, এবং মন্তব্যটি কেবল পোস্ট কোড নয়, কোডটি কী এবং কেন এটি কাজ করে তা ব্যাখ্যা করার জন্য একটি সহায়ক অনুস্মারক হিসাবে বোঝানো হয়েছিল। আশা করি বিষয়গুলি পরিষ্কার করতে সহায়তা করে।
জোশ বার্গেস

0
  $("#customFile").change(function() { 
    var fileName = $("#customFile").val();  

    if(fileName) { // returns true if the string is not empty   
        $('.picture-selected').addClass('disable-inputs'); 
        $('#btn').removeClass('disabled');   
    } else { // no file was selected 
      $('.picture-selected').removeClass('disable-inputs'); 
      $('#btn').addClass('disabled');
    }  
  });

আমি মনে করি আপনার পোস্টে কিছু মন্তব্য যুক্ত করা উচিত।
আব্দুররহমানওয়াই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.