Здравствуйте!
Очень странное поведение связки скрипта ниже. Баг в том что "через раз" обработчик выдает что action пуст..
и оно то грузится, то ли нет..
jQuery(document).on('click', '#media-file-upload', function(event){
event.stopPropagation(); event.preventDefault();
if( typeof files == 'undefined' ) return( showResponse("error","Вы не выбрали файл") );
var data = new FormData(); var action = 'rotator_upload_media';
data.append("action", action);
$.each( files, function( key, value ){ data.append( key, value ); });
$.ajax({
url : ajaxurl,
type : 'POST',
data : data,
cache : false,
dataType : 'text',
processData : false,
contentType : false,
success : function( respond, status, jqXHR ){
console.log(respond);
//showResponse(status, "Загрузка успешно завершена");
//$.each( JSON.parse(respond), function( key, value ){ console.log( key+": "+value ); });
},
error: function( jqXHR, status, errorThrown ){ showResponse("error","ОШИБКА AJAX запроса: " + status +" " + jqXHR ); },
});
});
if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
if( isset($_POST['action']) ){
switch ($_POST['action']) {
case 'rotator_update_options': echo json_encode(rotator_update_options($_POST['options'])); break;
case 'rotator_upload_media': json_encode(rotator_upload_media($_FILES)); break;
}
}
elseif( isset($_GET['action']) || !empty($_GET['action']) ){
switch ($_GET['action']) {
case 'rotator_get_options' : echo json_encode(rotator_get_options()); break;
}
}
else { die("Ошибка выполнения: AСTION пуст или неверен!"); }
}
unction rotator_upload_media($files){
$uploaddir = '../medialib';
if( ! is_dir( $uploaddir ) ) mkdir( $uploaddir, 0777 );
foreach( $files as $file ){
$file_name = cyrillic_translit( $file['name'] );
if( move_uploaded_file( $file['tmp_name'], "$uploaddir/$file_name" ) ){
$path = "$uploaddir/$file_name";
$ThisFileInfo['path'] = $path;
echo json_encode($ThisFileInfo);
}
}
}