Javascript 将JSON文件传递到php服务器,然后将其中的数据保存到Mysql数据库中

Javascript 将JSON文件传递到php服务器,然后将其中的数据保存到Mysql数据库中,javascript,php,jquery,mysql,Javascript,Php,Jquery,Mysql,正如标题所说,我正在编写一个网络应用程序,作为学校项目的一部分。我的目标是让某人上传一个json文件,并将其中的一些数据保存在Mysql上的一个表中,以便在应用程序中进一步发挥功能 我的问题是如何将JSON文件传递给PHP,然后从那里解析它,从而将所需数据存储到数据库中。我尝试通过Jquery fileupload发送它,因为json文件可能相当大,在php端,我使用了函数file\u get\u contents,但没有成功 以下是我的javascript代码: $(document).rea

正如标题所说,我正在编写一个网络应用程序,作为学校项目的一部分。我的目标是让某人上传一个json文件,并将其中的一些数据保存在Mysql上的一个表中,以便在应用程序中进一步发挥功能

我的问题是如何将JSON文件传递给PHP,然后从那里解析它,从而将所需数据存储到数据库中。我尝试通过Jquery fileupload发送它,因为json文件可能相当大,在php端,我使用了函数file\u get\u contents,但没有成功

以下是我的javascript代码:

$(document).ready(function () {
        $("#submitupload").click(function(){
            var files = $("#files");
            $("#uploadedfile").fileupload({
                url: 'upload.php',
                dataType: 'json',
                autoUpload: false
            }).on('fileuploadadd', function (e, data) {
                var fileTypeAllowed = /.\.(json)$/i;
                var fileName = data.originalFiles[0]['name'];
                var fileSize = data.originalFiles[0]['size'];
                console.log(data);
                if (!fileTypeAllowed.test(fileName)){
                    $("#error").html('Only json files are allowed');
                }else
                data.submit();
            }).on('fileuploaddone', function (e , data){
                var msg = data.jqXHR.responseJSON.msg;
                $("#error").html(msg);
            }).on('fileuploadprogress', function (e,data){
                var progress = parseInt(data.loaded / data.total * 100, 10 );
                $("#progress").html("Completed: " + progress + "%");
            })
})
})
下面是PHP:

<?php
include_once ('connection.php');

if (isset($_FILES['uploadingfile'])){

    $file = $_FILES['uploadingfile'];


    $data = file_get_contents($file);

    $array = json_decode($data, true );

    foreach( $array as $row){
        $sql = "INSERT INTO locations(timestamp) VALUES ('".$row["timestampMs"]."')";
        mysqli_query($conn, $sql);
    }
    $msg = array("msg" => "times ok ");
    exit(json_encode($msg));
}

$\u FILES['uploadingfile']
是一个数组,包含有关上载文件的多条信息。因此,您需要使用:

$file = $_FILES['uploadingfile']['tmp_name'];
获取存储数据的文件名


有关详细信息,请参阅。

您必须使用
move\u uploaded\u file()
将文件复制到您有权读取的位置。仅供参考,这绝对不是将数据插入数据库的方法。您很容易受到SQL注入攻击,更不用说插入失败了,因为您的数据包含引号。通过从根本上分离查询中的数据,使用参数化查询来解决这个问题。请您给我举一个关于参数化quaries@Brad的例子好吗?