Как говорит Титл, я пишу веб-приложение как часть школьного проекта. Моя цель - чтобы кто-то загрузил файл json и сохранил некоторые данные о нем в таблице на Mysql для дальнейшей функциональности в приложении.
Мой вопрос заключается в том, как точно вы можете передать файл JSON в PHP, а затем проанализировать его оттуда, чтобы сохранить нужные данные в БД. Я попытался отправить его с помощью Jquery fileupload, поскольку файлы json могут быть довольно большими и на стороне php я использовал функцию file_get_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));
}
Заметил ошибку в file_get_contents () это говорит о том, что переменная $ file является массивом, а не строкой, поэтому я попытался передать переменную $ _FILES в качестве аргумента, но безуспешно.
Это правильный способ сделать это, и если да, то что мне не хватает или я должен использовать другой подход?
Спасибо за долгое чтение и ваше время заранее! Извините, если что-то из этого звучит глупо, но я новичок в PHP.