Файл ввода типа не загружает файл с именем в качестве теста (копия) .csv - PullRequest
0 голосов
/ 02 ноября 2018

Я создал приложение импорта / экспорта (CSV) в PHP PDO и MySQL. Все работает. но когда я пытаюсь импортировать файл с именем файла FILENAME (копия) .csv, он не загружается. Я думаю, что форма не только отправить. и если я импортирую файл с именем файла FILENAME.csv, он будет работать нормально.

Вот мой код:

HTML:

<form class="form-horizontal" action="import.php" method="post" name="frmCSVImport" id="frmCSVImport" enctype="multipart/form-data">
     <div class="input-row">
        <input type="file" name="file" id="file">
        <input type="submit" id="submit" name="import" class="btn-submit btn btn-primary" value="Import">
     </div>
</form>

PHP (import.php):

if (isset($_POST["import"])) {

$fileName = $_FILES["file"]["tmp_name"];

if ($_FILES["file"]["size"] > 0) {

    $file = fopen($fileName, "r");
    $flag = true;

    while (($column = fgetcsv($file, 10000, ",")) !== FALSE) {

        if($flag) { $flag = false; continue; }

        $requiredHeaders = array('Name', 'Email', 'Event_name'); //headers we expect

        $f = fopen($fileName, 'r');
        $firstLine = fgets($f); //get first line of csv file
        fclose($f);

        $foundHeaders = str_getcsv(trim($firstLine), ',', '"'); //parse to array

        if ($foundHeaders !== $requiredHeaders) {
        echo 'Headers do not match: '.implode(', ', $foundHeaders);
        die();
        }else
        {


            echo $name = $column[0]."<br>";
            echo $email = $column[1]."<br>";
            echo $event_name = $column[2]."<br>";

        }
    }
}

}

Я не знаю, почему это происходит. Кто-нибудь может сказать мне причину?

1 Ответ

0 голосов
/ 04 ноября 2018

Глупый я, ниже был скрипт для проверки имени файла csv.

<script type="text/javascript">
$(document).ready(function() {
    $("#frmCSVImport").on("submit", function () {

        $("#response").attr("class", "");
        $("#response").html("");
        var fileType = ".csv";
        var regex = new RegExp("([a-zA-Z0-9\s_\\.\-:])+(" + fileType + ")$");
        if (!regex.test($("#file").val().toLowerCase())) {
                $("#response").addClass("error");
                $("#response").addClass("display-block");
            $("#response").html("Invalid File. Upload : <b>" + fileType + "</b> Files.");
            return false;
        }
        return true;
    });

});
</script>

Я удалил этот код, и он начал работать. очевидно. : D Извините ребята. мой плохой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...