Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ajax和php上传图像和数据_Php_Mysql_Ajax_Pdo_Image Uploading - Fatal编程技术网

使用ajax和php上传图像和数据

使用ajax和php上传图像和数据,php,mysql,ajax,pdo,image-uploading,Php,Mysql,Ajax,Pdo,Image Uploading,我正在尝试将firstname、lastname、description和图像路径上传到MySql数据库。并将上传的图像移动到特定文件夹 这是我的ajax函数 formData = new FormData(addPeopleForm); var file_data = $('input[type="file"]')[0].file; formData.append("file", file_data); $.ajax({ type: "POST", url: "functions.p

我正在尝试将firstname、lastname、description和图像路径上传到MySql数据库。并将上传的图像移动到特定文件夹

这是我的ajax函数

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

$.ajax({
  type: "POST",
  url: "functions.php",
  contentType: false,
  cache: false,
  processData: false,
  data: {
    function: "savepeople",
    data: formData
  }, success: function(data){
      console.log(data);
      getPeople();
  }

});
functions.php

if(isset($_POST['function'])){
 $f = $_POST['function'];

 if($f == "savepeople"){
  require_once("config.php");   
  echo $_POST['firstname'];
  .
  .
  .

您不能使用ajax调用直接将图像发送到php文件,您必须在表单定义时使用表单
enctype=“multipart/form data”

并在ajax调用时替换此文件上载代码

要在formdata中追加文件,请使用以下代码

formData = new FormData(); //your form name 
var file_data = $('input[type="file"]')[0].file;
formData.append("file", file_data);
formData.append("function","savepeople"); // new variable for your php condition



$.ajax({
    url: "YOUR_FILE_PATH",
    type: "POST",
    data: formData,
    contentType: false,
    cache: false,
    processData: false,
    success: function(data) {
    // success operation here
    },
在php端,您必须使用
$\u文件['YOUR\u FILE\u NAME']
而不是
$\u POST['YOUR\u FILE\u NAME']
来访问服务器上上载的文件。

您可以尝试此代码

$.ajax({
    type:'POST',
    url:'functions.php',     
    data:new FormData($('#my_form')[0]),
    cache: false,
    contentType: false,
    processData: false,
    success:function(msg)
    {
         console.log(msg);
    }
});
return false;
其中#我的表格是您的表格id

var formData = new FormData($(this)[0]);
var action = "savepeople";

    $.ajax({
        url  : 'functions.php',
    type : 'POST',
    data: {action:action,formData:formData},
    contentType: false,
    cache: false,
    processData:false,
    async : false,
    , success: function(data){
console.log(data);
getPeople();
}
});
functions.php

if(isset($_POST['action']) && $_POST['action'] == "savepeople"){


    //TO DO CODE
}

好的,那我怎么回呼名字呢?echo$_POST['firstname']?是的,您是对的,您可以使用
echo$_POST['firstname']来回送firstname值嗯,我不能简单地说。我使用ajax调用特定的php函数,方法是将函数POST值作为数据传递,但是使用formdata我不能这样做,所以我不需要调用特定的函数。再次查看我的php函数,我对其进行了一点编辑以使其更具意义。您可以通过将formdata作为get变量添加到formdata中,从而在formdata中添加任意数量的数据查看我的新代码以了解如何将函数值作为新变量传递这将起作用,但在我的情况下不起作用,因为我将两个变量传递给php,第一个决定运行哪个if语句,第二个保存所有数据。@Troutfisher您传递的是哪两个变量?数据:{function:“savepeople”,data:formData},是否尝试在formData中附加函数变量?我刚刚做了,一切都很好:)谢谢:)很乐意帮助:)