Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.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
Javascript jQuery文件上传和ajax_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript jQuery文件上传和ajax

Javascript jQuery文件上传和ajax,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,因此,我有以下表单和js/php: php <form enctype="multipart/form-data"> <input id="fileupload" type="file" name="files[]" class="files " onChange="UploadImage" accept='image/*'/> <input type="button" class="submit_form" value="submit">

因此,我有以下表单和js/php:

php

 <form enctype="multipart/form-data">
    <input id="fileupload"  type="file" name="files[]" class="files " onChange="UploadImage" accept='image/*'/>
    <input type="button" class="submit_form" value="submit">    
</form>

<?php 
   add_action( 'wp_ajax_UploadImage', 'UploadImage' );
   function UploadImage()
   {
     $upload_dir = wp_upload_dir();
     $files = $_FILES['files']; 
   //Some function
   }
?>
从这里可以看到,当使用(js没有正确编写)选择图像时,我希望图像文件由php函数处理


换句话说,js编写不正确,我不确定如何启动插件。当选择图像时,它由php函数通过ajax进行处理(也就是说,如何通过ajax将文件信息解析为php函数?

不要直接使用
$.ajax
)。插件已经在幕后完成了这项工作

下面是一个工作示例,基于您的代码,但适合在JSFIDLE上运行:

$(document).ready(function(){
    var url = '/echo/json/';
    var formdata = {json: JSON.stringify({field1: 'value1'})};

    jQuery('#fileupload').fileupload({
        url: url,
        formData : formdata,        
        dataType: 'json',
        type: "POST",
        contentType:false,
        processData:false,
        success : function(data){                   
            alert('success...');
            console.dir(data);
        }
    });       
});

演示:

您的确切问题是什么?它是与jQuery插件相关还是与PHP处理相关?对于后者:
formdata
是否正确地发送到php文件中?嗯,这就是问题所在。我不知道如何检查formdata是否发送到php文件。我猜问题在于插件的js是否编写正确,以及它是否将formdata发送到php。您可能需要安装js控制台(例如firebug for FF)并首先检查。插件已经在幕后使用AJAX上传图像。所以我不明白你为什么要手动调用
jQuery.ajax
。为什么不直接使用
$('#fileupload').fileupload({done:callbackFunction}
$(document).ready(function(){
    var url = '/echo/json/';
    var formdata = {json: JSON.stringify({field1: 'value1'})};

    jQuery('#fileupload').fileupload({
        url: url,
        formData : formdata,        
        dataType: 'json',
        type: "POST",
        contentType:false,
        processData:false,
        success : function(data){                   
            alert('success...');
            console.dir(data);
        }
    });       
});