2010-08-26 25 views
0

我试图在我的wordpress选项面板和元框中实现AjaxUpload的新版本...虽然我不相信我应该从我工作的旧版本更换。这是调用上传功能jQuery的:Valums AjaxUpload和Wordpress wp_handle_upload

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都是空的。即使寿萤火说POST请求是这样的:

http://localhost/plagueround/wp-admin/admin-ajax.php?qqfile=12_col.gif&action=upload_callback&id=image

和萤火说帖 “源” 的模样:

来源 GIF89aüÿêêÿÓÓÿÿÿÿåå,ü 9©Ë8'HÈ×;;; P P ;

我推测是哪个图像?但在这一点上,我不知道。有没有人成功应用了新的http://valums.com/ajax-upload/ Ajax Upload with Wordpress的wp_handle_upload

回答

1

所以Maybe..Just也许它本
params: { action: 'upload_callback', id: 'image', }, });
有后您的最后一个逗号} ..它应该是....
params: { action: 'upload_callback', id: 'image', }});

也有你尝试了所有的故障排除来自http://valums.com/ajax-upload/的提示如果上传没有完成,说失败。

  • 将FileUploader的调试选项设置为true。
  • 打开您拥有FileUploader的页面。
  • 在浏览器中打开开发者控制台。
  • 尝试上传文件。你应该看到一个服务器serponse。 对于已完成的请求,应该是{success:true}。如果不是,那么你的服务器端脚本有问题。

不知道是否有帮助?

+0

不知道为什么downvote?添加评论会很好。 – gideon 2012-06-14 09:41:36

0

我能够使它工作。 jsUpload和wp_handle_upload在WordPress中。我建议看看在jsUpload归档中提供的服务器示例php.php文件。他们使用类似的东西来有效地将文件上传到临时目录:

$uploader = new qqFileUploader($allowedExtensions, $sizeLimit); 
$result = $uploader->handleUpload($upload_tmp_dir.'/'); // with ending slash 

希望它有帮助。否则,让我知道,我会尽力帮助你。

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; 
} 
+0

绝对是一个旧帖子!我显然还没有在这方面努力,但是谁知道,我可能很快就会回来。感谢回调函数...我一直在学习'退出'是非常重要的。 – helgatheviking 2012-02-07 15:32:08