PHP - 检查导入的文件是否是csv

时间:2018-06-15 06:23:05

标签: php

你好我有一个代码我将csv文件导入到mysql数据库到目前为止它导入csv它不会导入图像,视频等但它导入的文件如SQL和PHP,代码有问题吗?任何帮助表示赞赏。用于验证其是否为csv文件的代码。

$csvMimes = array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain');

3 个答案:

答案 0 :(得分:0)

请尝试这样

$csvMimes = array(
    'text/csv',
    'text/plain',
    'application/csv',
    'text/comma-separated-values',
    'application/excel',
    'application/vnd.ms-excel',
    'application/vnd.msexcel',
    'text/anytext',
    'application/octet-stream',
    'application/txt',
);

if (in_array($_FILES['upload']['type'], $csvMimes)) {
    // your code
}

答案 1 :(得分:0)

上传文件的metadeta通常看起来像

type

为了检查上传的文件类型是否符合您的要求,您可以依赖<?php $csvMimes = array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain'); if(in_array($_FILES['file']['type'],$csvMimes)){ echo "File is Allowed"; }else{ echo "Invalid File"; } ?> 属性。

<input type="date" id="month" onchange="myFunction(this.value)">
<script>
    function myFunction(str) {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                document.getElementById("month").value = this.responseText;
            }
        };
        xmlhttp.open("POST", "chart.php", true);
        xmlhttp.send("value=" + str);
    }
</script>

<?php
    $date = "";
    if(isset($_POST["value"])){
        $date =  $_POST["value"];
    }
?>

答案 2 :(得分:0)

使用PHP的finfo课程。直接使用$_FILES['type'];很容易被欺骗。

<?php 
$csvMimes = array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain');

if (isset($_FILES['file']['tmp_name'])) {
    $finfo = finfo_open(FILEINFO_MIME_TYPE);
    $mime = finfo_file($finfo, $_FILES['file']['tmp_name']);
    echo in_array($mime, $csvMimes) === true ? 'It is a CSV' : 'It is not CSV';
    finfo_close($finfo);
}
?>