Arhn - архитектура программирования

как правильно использовать метод javascript include, чтобы проверить, содержит ли строка определенные символы [дубликаты]

Я хотел бы знать, как правильно использовать метод javascript «включает», чтобы проверить, содержит ли строка определенные символы. Это то, что у меня есть ниже, но я думаю, что это неправильно, потому что msgBox не появляется. Я в основном хочу, чтобы мои пользователи загружали только файлы типов xls и xlsx. Я также хотел бы предотвратить загрузку, если размер файла file.size превышает 5 МБ.

function submitFunction()
{
    // $('#fileLabel').val("");
    $('uploadLoader').removeClass("done");
    document.getElementById("uploadLoader").style.display = "none";
    $.msgbox("Your file has been uploaded");
    //$("uploadLoader").hide();

    var input, file;
    var extension = file.name; 

    if (!window.FileReader) {
        $.msgbox("p", "The file API isn't supported on this browser yet.");
            return;
    }

    input = document.getElementById('fileinput');
    if (!input) {
        bodyAppend("p", "Um, couldn't find the fileinput element.");
    }
    else if (!input.files) {
        $.msgbox("p", "This browser doesn't seem to support the `files` " 
                      + "property of file inputs.");
    }
    else if (!input.files[0]) {
        $.msgbox("p", "Please select a file before clicking 'Load'");
    }
    else if (!extension.includes("xls")) {
        $.msgbox("Please select an xls or xlsx file");
    }
    else if (!extension.includes("xlsx")) {
        $.msgbox("Please select an xls or xlsx file");
    }
    else {
        file = input.files[0];
        $.msgbox("p", "File " + file.name + " is " + file.size 
                        + " bytes in size");
    }
}




<iframe width="0" height="0" border="0" name="dummyframe" style="display: none;" 
        id="dummyframe"></iframe>
<form id="uploadForm" name="form1" method="post" enctype="multipart/form-data" 
    action="/api/BulkUpload" target="dummyframe" onsubmit="submitFunction()">
    <div>
        @*<label for="caption">Upload Bulk File</label>*@
        @*<input name="caption" type="text" />*@
    </div>
    <div id="inputLabel">
        @*<input id="fileLabel" name="image1" type="file" />*@
        <input id="fileinput" name="image1" type="file" />
    </div>
    <div>
        <span class="btn btn-success fileinput-button">
            <i class="icon-plus icon-white"></i>
            <span>upload file</span>
            <input id="submitButton"class="submit" type="submit" 
                    value="ok" onclick="validation()"/>
        </span>
    </div>
</form>

  • file не инициализирован, тогда вы выполняете var extension = file.name, что, вероятно, завершается ошибкой с исключением. 06.11.2018

Ответы:


1

Вместо включения метода вы можете вывести расширение файла и проверить значение.

var file = input.file[0]; // I don't see your file where is it?
var extension = file.name;

// Split your file name "yourfile.ext" with dot "."
// pop method will return the last element of array.
var poppedExt = extension.split('.').pop();

и вы можете проверить poppedExt для расширения желания.

if(poppedExt == "xls" || poppedExt == "xlsx") { // alert something }

if(file.size <= 5000000) { // alert something } // file.size returns bytes so 5000000 is 5MB, I have used online tool to convert byte to mb.

Надеюсь это поможет.

06.11.2018
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..