2017-01-21 8 views
1

私はajaxを使用してサーバにデータを投稿しようとしています。私はイメージをアップロードすることに立ち往生しています、私は自分のミスがどこにあるのかわかりません。どのように私はこれを修正することができます示唆してくださいできますか?ajaxフォームをPHP jqueryを使用してサーバにアップロード

以下は私のスクリプトとPHPコードです。あなたが「ファイル」であるFORMDATAに言及したようにPHPコード内のファイルにアクセスするために同じ名前を使用する必要が

$("#submit").click(function() { 

    var formData = new FormData(); 
    formData.append('file', $('input[type=file]')[0].files[0]); 

    var name = $("#first_name").val(); 
    var country = $("#country").val(); 
    var city = $("#city").val(); 

    $.ajax({ 

    url: 'personaliseService.php?name=' + name + '&country=' + country + '&city=' + city, 
    dataType: 'json', 
    processData: false, 
    contentType: false, 
    data: formData, 
    //data: new FormData(), // Data sent to server, a set of key/value pairs (i.e. form fields and values) 
    success: function(response) { 
     console.log(response); 
    }, 
    error: function(error) { 
     alert("Yes"); 
     console.log(error); 
    } 

    }); 
}); 
<?php 

    include("config.php"); 

    $name = $_REQUEST['name']; 
    $country = $_REQUEST['country']; 
    $city = $_REQUEST['city']; 
    $image = $_FILES['image']['name']; 
    $sourcePath = $_FILES['image']['tmp_name']; 

    $targetPath = "uploads/".$_FILES['file']['name']; // Target path where file is to be stored 
    move_uploaded_file($sourcePath, $targetPath) ; // Moving Uploaded file 

    $sql = "INSERT into personalise (name, country, city, image) VALUES ('$name', '$country', '$city', '$image')"; 

    $sqlQuery = mysqli_query($conn, $sql); 

    if(mysqli_insert_id($conn) > 0){ 

     $insertValue = array("response" => "Data Inserted Successfully"); 
     echo '{"response": '.json_encode($insertValue).', "success": true}'; 

    }else{ 

     echo '{"response": '.json_encode($insertValue).', "success": false}'; 

    } 

?> 
+0

あなたのPHPコードは '$ _FILES [「イメージ」]をチェックして'が、フォームでimage' 'への参照が存在しないのですか?なぜあなたのフォームは 'dataType: 'json''を使っていますか? –

+0

http://stackoverflow.com/q/10492617/1072229 –

+0

はい私は削除されたデータ型を理解していますが、どうすれば画像参照plsを得ることができます –

答えて

0

は、あなたが楽しんで願っています:)

関連する問題