Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 906 Просмотров
*

spirit1086

  • Захожу иногда
  • 115
  • 1 / 0
Ajaxupload
« : 01.02.2015, 20:54:08 »
Здравствуйте, использую ajaxupload, почему -то не возвращается ответ  (response) из контроллера
js код
Код
	var button = $('#download'), interval;

$.ajax_upload(button, {
action : 'index.php?option=com_apartment&task=apartment.upload',
name : 'file',
onSubmit : function(file, ext) {
// показываем картинку загрузки файла
                            
                            if (! (ext && /^(jpg|png|jpeg|JPG|PNG)$/.test(ext)) || mas.length>='5' )
                            {
                              // extension is not allowed
                               if (mas.length>='5') {$('#status').text('Вы можете загрузить не больше 5 фото!');} else
                               {$('#status').text('Поддерживаемые форматы JPG или PNG');}
                               return false;
                               $("img#load").attr("src", "/components/com_apartment/images/loadstop.gif");
                            }

                            this.disable();
                            $("img#load").attr("src", "/components/com_apartment/images/load.gif");

},
onComplete: function(file, response)
                        {
// убираем картинку загрузки файла
$("img#load").attr("src", "/components/com_apartment/images/loadstop.gif");

this.enable();

// показываем что файл загружен
                               if(response!="error" && response!='maxsize')
                                {
                                   $('#status').text("");
                                   alert(response);
                                   myfile=response;
  mas.push(myfile); // заносим в массив имя файла
                                   $("#jform_imgpath").val(mas.toString());  // заносим в поле image название всех фото
                                   myclass=Math.floor((Math.random() * 100000000) + 1);  

                                    $("#files").html($("#files").html()+"<li class='"+myclass+"'><img src='/tmp_img/"+myfile+"' /><label class='closeimg' data-img='"+myfile+"' data-li='"+myclass+"'>X</label></li>");
                                 }
                                 else
                                 {
                                    $('#status').text('Размер фото превышает 2Мб');//размер загрузки в php.ini
                                 }
}
});  


Контроллер
Код
public function upload()
 {
       $generate=rand(1,10000000000);// генерируем имя
       $ext = substr($_FILES['file']['name'], strpos($_FILES['file']['name'],'.'), strlen($_FILES['file']['name'])-1); //расширение
 
       $file=$generate.$ext;//$_FILES['file']['name']
       $uploaddir = $_SERVER['DOCUMENT_ROOT'].'/tmp_img/';
       $uploadfile = $uploaddir.$file;
      
        if ($_FILES['file']['size']>1024*2*1024 )
{
           echo "maxsize";  
        }
   elseif (move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile))
        {
          echo $file;
        }
        else
        {
            echo "error";
        }  
 }

мне нужно получить переменную $file оно содержит переименованное имя
« Последнее редактирование: 01.02.2015, 21:56:33 от spirit1086 »
*

spirit1086

  • Захожу иногда
  • 115
  • 1 / 0
Re: Ajaxupload
« Ответ #1 : 01.02.2015, 22:14:21 »
нужно было выводить вот так
Код
           JFactory::getDocument()->setMimeEncoding( 'application/json' );
           print_r($file);
           JFactory::getApplication()->close();

Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться