ディミトリスMarkantonatos:
点画として、私は学校のプロジェクトの一環として、Webアプリケーションをコーディングしていますと言います。私の目標は、JSONファイルをアップロードし、アプリでさらにfunctionallity用のMySQLのテーブルにいくつかのデータを保存するために誰かのためです。
私の質問は、あなたがPHPのJSONファイルを渡した後、DBに望んでいたデータを格納するよう、そこからそれを解析することができますどのようにexacltyです。JSONファイルが非常に大きくなることがあり、私はjQueryのファイルアップロードの助けを借りて、それを送信しようとしたと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()と言う$ファイルの変数iが再び運と引数として$ _FILES変数を渡そうとしましたので、配列でない文字列です。
はい、私は何をしないのですか、私は別のアプローチを使用する必要がある場合、これはそれを行うための方法を正しい方法であると?
長い読み取りと事前にお時間をありがとう!申し訳ありませんが愚かしかし、PHPに新しいイムこの音のいずれかの場合。
Barmar:
$_FILES['uploadingfile']
アップロードされたファイルに関するいくつかの情報を持つ配列です。あなたが使用する必要がありますので:
$file = $_FILES['uploadingfile']['tmp_name'];
データが格納されているファイル名を取得します。
参照ファイルアップロードの処理完全な詳細については。