Я пытаюсь использовать встроенный ajax Wordpress для обработки загрузки с использованием сценария AjaxUpload. Сценарий был обновлен в августе, и теперь я не могу заставить его работать.
http://valums.com/ajax-upload/
вот мой JQuery ... это, кажется, на месте, как я получаю вход преобразуется в кнопку загрузки и выбора изображения он начинает пытаться загрузить автоматически.
jQuery.noConflict();
jQuery(document).ready(function($) {
/*
* AJAX UPLOAD
* http://valums.com/ajax-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: {
type: "POST",
action: 'save_function',
key: 'logo',
},
onComplete: function(id, fileName, responseJSON){
console.debug("Here is the response: %o", responseJSON);
}
});
}); //end document.ready functions
мое действие установлено ajaxurl, который является константой для /wp-admin/admin-ajax.php, я принял меры в Params так, чтобы администратор-Ajax будет знать, какие функции я хотел бежать обрабатывать вещи. и моя функция обратного вызова
function childtheme_data_save_callback() {
global $my_shortname;
$id = $_POST['key']; // option name
$upload = wp_handle_upload($_FILES['qqfile']['tmp_name'], array('test_form' => false));
if(!empty($upload['error'])) { //there IS an error message
die($upload['error']);
}
else { // there is NOT an error
$upload_image = $my_data; //preserve current data
$upload_image[$id] = $upload['url'];
update_option($my_shortname .'_options', $upload_image) ;
die($upload['url']); //response sends url back to jquery
}
}
add_action('wp_ajax_save_function', 'childtheme_data_save_callback');
который вызывается, и мое сообщение об ошибке отображается в моей консоли firebug. вот ошибка
Файл не заполнен. Загрузите что-нибудь более существенное. Эта ошибка также может быть вызвана отключением загрузки в вашем php.ini или post_max_size, который определяется как меньше, чем upload_max_filesize в php.ini.
вмешиваются ж/изменение messasge ошибки до $ _FILES это всегда возвращается пустой массив, даже если в консоли он говорит POST заполняется ж/материал, который выглядит как
ÿØÿà�JFIF��_�_��ÿÛ�C� $.' ",#(7),01444'9=82<.342ÿÛ�C 2!!22222222222222222222222222222222222222222222222222ÿÀ�°
и многое другое. хотя теперь я вижу, что консоль также говорит, что заголовки ответов имеют тип контента: Content-Type text/html; кодировка = UTF-8
и заголовки запроса принимаем: Принять текст/HTML, приложение/XHTML + XML, приложение/XML; д = 0,9, /; д = 0,8
проблема то не отправлять POST в кодировке «multipart/form-data»? если да, то как мне переключиться на это, так как я использую этот плагин, а не тег формы? если нет, то я уже давно смущен.
О, и я только что узнал, что b/ci использует Firefox, скрипт пытается использовать xhr для загрузки файла ..., который я «догадываюсь» объясняет, почему массив $ _FILES пуст, но теперь у меня нет идеи что использовать вместо этого. это тоже не работает для меня в IE. – helgatheviking