کنترل اندازه یا size فایل انتخاب شده جهت آپلود در جی کوئری

سوال

چجوری میتونم کنترل کنم که فایلی که کاربر برای آپلود انتخاب کرده اندازه اش چقدر هست ؟ میخوام مثلا شرط بذارم که فایلهای بیشتر از 1 مگابایت آپلود نشه.

<input type="file" id="files" name="files" />

 

حل شد 0
2022-03-31T23:36:27+03:30 1 پاسخ ها کاربر تازه 0

پاسخ ( 1 )

    0
    2022-04-01T09:42:46+03:30

    کنترل size فایل انتخاب شده توسط جی کوئری

    برای اینکه بتونید اندازه فایل انتخاب شده توسط کاربر رو کنترل کنید به مثال زیر دقت کنید :

    <input type="file" id="files" name="files" />
    <input type="button" onclick="UploadFile()" value="آپلود" class="btn" />
    
    در کدهای بالا 2 تگ input داریم. تگ اول برای انتخاب یک فایل از local می باشد و توسط تگ دوم که در واقع یک button می باشد برای آپلود فایل انتخاب شده روی سرور استفاده می شود.
    <script>
        var UploadFile = function () {
          var data = new FormData;
          //نگهداری فایل انتخاب شده در متغیر
          var file = $("#files").get(0);
          //تبدیل فایل انتخاب شده به یک آرایه باینری
          var files = file.files;
    
          //کنترل سایز فایل
          if (files[0].size >= 1048576) {
              consol.log('حجم فایل انتخابی بیشتر از 1 مگابایت است');
              return false;
          }
    </script>
    
    

    بعد از اینکه کاربر فایل را انتخاب کرد و روی دکمه آپلود کلیک کرد تابع UploadFile اجرا می شود. در این تابع در ابتدا فایل انتخاب شده رو به یک آرایه باینری تبدیل می کنیم. در ادامه به راحتی و توسط تابع size میتوانیم اندازه فایل را کنترل کنیم.

    دقت کنید که تابع size اندازه فایل را بر اساس byte کنترل می کند. بنابراین برای اینکه کنترل کنیم حجم فایل 1 مگابایت بیشتر نیست باید 1 * 1024 * 1024 کنیم تا به صورت بایت مقدار را به دست بیاوریم.

    بهترین پاسخ

ارسال یک پاسخ