通过ajax formData

时间:2017-02-20 08:29:24

标签: javascript php jquery ajax form-data

以下是我的代码。我无法将图像文件发送到php页面。我使用formData并且我不清楚它的概念。我如何将它发送到php页面,我如何检索PHP页面中的图像?

JAVASCRIPT CODE

function UpdateUserDetails() {

   var title = $("#title1").val();
   var store = $(".search-box").val();
   var category= $("#category").val();
   var descp=$("#descp1").val();
   var url=$("#url1").val();
   var id = $("#hidden_user_id").val();
   var form = $('#image1')[0]; 
   var formData = new FormData(form);

   $.post("update.php", {
        id: id,
        title:title,
        store:store,
        category:category,
        descp:descp,
        data:formData,  
        url:url

    },
    function (data, status) {
        $("#update_user_modal").modal("hide");
        readRecords();
    }
);
}

update.php

<?php
include("db_connection.php");
if(isset($_POST))
{
   $id = $_POST['id'];
   $title=$_POST['title'];
   $desc=$_POST['descp'];
   $pname=$_POST['store'];
   $category=$_POST['category'];
   $url=$_POST['url'];

   $path = $_FILES['tmp_name'];
   $name = $_FILES['name'];
   $size = $_FILES['size'];
   $type = $_FILES['type'];

   $content = file_get_contents($path);
   $content = base64_encode($content);

   $sql1 = "update products set title='$title',url='$url',store='$pname', product_catagory='$category', image='$content',size='$size',type='$type',descp='$desc' where id=".$id."";
        if(mysql_query($sql1))
        {
            echo"updated";
        }
        else   
            echo "Not Updated";       
 }
 ?>

1 个答案:

答案 0 :(得分:2)

试试这个:

Jquery的:

$('#upload').on('click', function() {
        var file_data = $('#pic').prop('files')[0];
        var form_data = new FormData();
        form_data.append('file', file_data);

        $.ajax({
                url         : 'upload.php',     // point to server-side PHP script 
                dataType    : 'text',           // what to expect back from the PHP script, if anything
                cache       : false,
                contentType : false,
                processData : false,
                data        : form_data,                         
                type        : 'post',
                success     : function(output){
                    alert(output);              // display response from the PHP script, if any
                }
         });
         $('#pic').val('');                     /* Clear the file container */
    });

腓:

<?php
    if ( $_FILES['file']['error'] > 0 ){
        echo 'Error: ' . $_FILES['file']['error'] . '<br>';
    }
    else {
        if(move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']))
        {
            echo "File Uploaded Successfully";
        }
    }

?>

它对我有用。