Javascript jQuery文件上传和ajax
因此,我有以下表单和js/php: phpJavascript 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">
<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);
}
});
});