我正在尝试在我的wordpress选项面板和元数据库中实现新版本的AjaxUpload ......虽然我不相信我应该改变我工作的旧版本。这是调用上传器函数的jquery:
var uploader = new qq.FileUploader({
// pass the dom node (ex. $(selector)[0] for jQuery users)
element: document.getElementById('file-uploader'),
// path to server-side upload script
action: ajaxurl,
params: {
action: 'upload_callback',
id: 'image',
},
});
我记得ajaxurl和传递操作以后用作我之前版本的尝试中的函数名称。它似乎在函数被调用的意义上正常运行。
然后我的回调函数是
function childtheme_upload_callback() {
$stuff = htmlspecialchars(serialize($_POST));
die( "hey: " . $stuff );
}
add_action('wp_ajax_upload_callback', 'childtheme_upload_callback');
这个函数是我尝试wp_handle_upload
的地方,但它总是空的,所以我开始尝试通过检查是否有任何事情来调试它。但无论我做什么$_POST
和$_FILES
都是空的。即使是萤火虫也说帖子请求看起来像这样:
http://localhost/plagueround/wp-admin/admin-ajax.php?qqfile=12_col.gif&action=upload_callback&id=image
和firebug说帖子“来源”看起来像:
来源 GIF89aü ÿêêÿÓÓÿÿÿÿåå, ü 9©Ë8£'Ú+¸ûmHÈê¡××Þغ;ûéÄÐP9Éݲé\ ;
我认为这是什么形象?但在这一点上我不知道。有没有人使用Wordpress的wp_handle_upload
成功应用新的http://valums.com/ajax-upload/ Ajax上传?
答案 0 :(得分:1)
所以也许..就是这可能就是这个
params: { action: 'upload_callback', id: 'image', }, });
在你的上一个之后有一个额外的逗号..它应该是....
params: { action: 'upload_callback', id: 'image', }});
你还试过http://valums.com/ajax-upload/的所有故障排除提示如果上传没有完成,说失败了。
{success:true}
。如果不是,那么您的服务器端脚本就会出现问题。不知道这有用吗?
答案 1 :(得分:0)
我能够让它发挥作用。 WordPress中的jsUpload和wp_handle_upload。我建议看一下jsUpload存档中提供的服务器示例php.php文件。他们使用类似的东西将文件有效地上传到临时目录:
$uploader = new qqFileUploader($allowedExtensions, $sizeLimit);
$result = $uploader->handleUpload( $upload_tmp_dir.'/' ); // with ending slash
希望它有所帮助。否则,让我知道,我会尽力帮助你。
答案 2 :(得分:0)
我知道这是一个老帖子,但这可能会帮助其他人遇到同样的问题。
检查您的回复是否格式正确并且您要退出请求;
您的回答应如下所示:
{'success'=>true}
据我所知,die( "hey: " . $stuff );
会产生错误的回复
hey: {'success'=>true}
这就是我的回调函数:
public function uploadCallback(){
$uploader = new FileUploadManager($allowedExtensions, $sizeLimit);
$resultArray = $uploader->handleUpload('uploads/');
echo htmlspecialchars(json_encode($resultArray);
exit;
}