Значения AjaxUpload и Wordpress wp_handle_upload - PullRequest
0 голосов
/ 27 августа 2010

Я пытаюсь реализовать новую версию AjaxUpload на своих панелях опций WordPress и метабоксах ... хотя я не уверен, что мне следует перейти от старой версии, с которой я работал.Это 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 пусты.Даже если firebug говорит, что почтовый запрос выглядит так:

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

, а firebug говорит, что сообщение "source" выглядит так:

Source GIF89aü��,ÊêÿÓÓÿÿÿÿåå, ����ü��9 © Ë8 £ ´Ú + ¸ûm HÈê ¡® × Þغ; ûéÄÐP9Éݲé \ �;

Какое изображение я предположил?Но на данный момент я понятия не имею.Кто-нибудь успешно применил новый http://valums.com/ajax-upload/ Ajax Upload с Wordpress's wp_handle_upload?

Ответы [ 3 ]

1 голос
/ 30 октября 2010

Так может быть .. Просто может быть это это
params: { action: 'upload_callback', id: 'image', }, });
После вашей последней запятой есть ДОПОЛНИТЕЛЬНАЯ запятая ... она должна быть ....
params: { action: 'upload_callback', id: 'image', }});

Также вы попробовали все советы по устранению неисправностей из http://valums.com/ajax-upload/ Если загрузка не завершена, произнесение не удалось.

  • Установите для параметра отладки FileUploader значение true.
  • Откройте страницу, где у вас есть FileUploader.
  • Откройте консоль разработчика в вашем браузере.
  • Попробуйте загрузить файл. Вы должны увидеть серпсон сервера. Должно быть {success:true} для выполненных запросов. Если это не так, значит, у вас проблема с вашим серверным скриптом.

Интересно, поможет ли это?

0 голосов
/ 07 февраля 2012

Я знаю, что это старый пост, но это может помочь любому, кто страдает от той же проблемы.

Убедитесь, что ваш ответ в правильном формате и вы выходите из своего запроса;

Ваш ответ должен выглядеть следующим образом:

{'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 голосов
/ 29 августа 2011

Я смог заставить его работать.jsUpload и wp_handle_upload в WordPress.Я бы посоветовал взглянуть на пример файла php.php сервера, который поставляется в архиве jsUpload.Они используют что-то вроде этого для эффективной загрузки файла во временный каталог:

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

Надеюсь, это поможет.В противном случае, дайте мне знать, и я постараюсь вам помочь.

...