Русскоязычный форум, посвященный фреймворку Kohana

Все о фреймворке Kohana. Обсуждение уроков, документации.
Текущее время: 28 мар 2024, 16:17

Часовой пояс: UTC + 4 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Модуль image
СообщениеДобавлено: 12 сен 2013, 12:09 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
с любым файлом?

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль image
СообщениеДобавлено: 12 сен 2013, 14:07 
Не в сети
Новичок

Зарегистрирован: 10 сен 2013, 18:20
Сообщения: 12
Наверно я малость не правильно говорю, если передавать просто форомой через поле input file, то все работает нормально, а я пытаюсь сделать через ajax вот он и не хочет кушать файлы, не пониаю как и сделать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль image
СообщениеДобавлено: 12 сен 2013, 15:47 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
Steemy js код в студию

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль image
СообщениеДобавлено: 12 сен 2013, 17:18 
Не в сети
Новичок

Зарегистрирован: 10 сен 2013, 18:20
Сообщения: 12
Код:
$(document).ready(function() {
   jQuery.event.props.push('dataTransfer') ;
   var maxFiles    = 1,
      maxSize     = 2,
      errMessage  = 0,
      dataArray   = [],
      $errMessage = $('.errMessage'),
      $dropFiles  = $('.drop-files'),
      $loadCont   = $('.loading-content') ;
      
   //При падении файла в зону загрузки
   $dropFiles
      .on('drop', function(e) {
         var files = e.dataTransfer.files ;
         if (files.length <= maxFiles) {
            loadInChek(files) ;
         } else {
            errorMessage('Вы не можете загружать больше '+maxFiles+' изображений!') ;
            files.length = 0 ;
            return ;
         }
      })
   
   // Функция проверки изображений
   function loadInChek(files) {
      var Percent = 100 / files.length,
         Сounter = 0 ,
         arr_Img = [] ;
      $.each(files, function(index, file) {
         if (!files[index].type.match('image.*')) {
            errorMessage('Можно загружать только изображения') ;
            return false;
         } else if(files[index].size > 2*1024*1024) {
            errorMessage('Файл большого размера! Максимальный размер файла 2мб!') ;
            return false ;
         }
         
         $('.loading').show() ;
         
         var fileReader = new FileReader() ;
            fileReader.onload = (function(file) {
               return function(e) {
                  ++Сounter ;
                  [b]arr_Img.push({
                     name:file.name,
                     type:file.type,
                     tmp_name:this.result,
                     error:0,
                     size:file.size}) ;[/b]
                  send(file.name,arr_Img,Percent,Сounter) ;
               };
            })(files[index]) ;
         fileReader.readAsDataURL(file) ;
      }) ;
      
      return false;
   }
   
   function errorMessage(text) {
      $errMessage.fadeIn(800).html(text).delay(800).fadeOut(800) ;
   }
   
   // Функция отправки изображения на сервер
   function send(fileName,fileResult,Percent,counter) {
      $loadCont.html('Загружается '+fileName) ;
      $.post(url_site, { name: fileName, value: fileResult }, function(data) {
         $('.loading-color').css({'width' : Percent*(counter)+'%'}) ;
         if(Percent*(counter) == 100) {
            $loadCont.html('Загрузка завершена!').parent().delay(500).fadeOut(1000);
            $dropFiles.css({
               'box-shadow' : 'none'
            }) ;
            $('.content').prepend(data) ;
         } else if(Percent*(counter) < 100) {
            $loadCont.html('Загружается '+fileName) ;
         }
      }) ;
   }
}) ;   }
}) ;

массив передаю:
Код:
arr_Img.push({
                     name:file.name,
                     type:file.type,
                     tmp_name:this.result,
                     error:0,
                     size:file.size}) ;


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль image
СообщениеДобавлено: 13 сен 2013, 14:39 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
используй что-нибудь вроде http://www.uploadify.com/ или https://github.com/codler/jQuery-Ajax-Upload , простого варианта ajax загрузки файлов я не видел пока. я пользуюсь https://github.com/Widen/fine-uploader

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль image
СообщениеДобавлено: 13 сен 2013, 15:03 
Не в сети
Новичок

Зарегистрирован: 10 сен 2013, 18:20
Сообщения: 12
WinterSilence Спасибо, посмотрю, может подойдет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль image
СообщениеДобавлено: 13 сен 2013, 15:25 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
обманул немного, в случае с 1 файлом работает вариант:

Код:
<form name="load_img_form" action="" method="post" enctype="multipart/form-data">
   <input type="file" name="avatar" id="avatar" value="">
   <input type="submit" name="load_img" id="load_img" value="Upload">
</form>


Код:
$(document).ready(function(){
   
   $.ajaxSetup({
      type: 'POST',
      dataType: 'json',
      async: true,
      error: function(error){
         console.log(error.message);
      }
   });
   
   $('#load_img').click(function(){
      
      var fd = new FormData();
      fd.append('avatar', $('#avatar')[0].files[0]);
      
      $.ajax({
         processData: false,
         contentType: false,
         url: 'ajax/avatar/upload',
         data: fd,
         success: function(result){
            console.log(result);
         }
      });
      return false;
   });
   
});

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль image
СообщениеДобавлено: 13 сен 2013, 16:51 
Не в сети
Новичок

Зарегистрирован: 10 сен 2013, 18:20
Сообщения: 12
В кохане использщуется проверка is_uploaded_file и загрузка move_uploaded_file, если использовать метод save, вот в чем проблема, делаю через file_put_contents, стало все работать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль image
СообщениеДобавлено: 13 сен 2013, 17:17 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 02 апр 2013, 16:26
Сообщения: 474
Откуда: Сергиев Посад
Steemy вас никто не принуждает использовать данный метод валидации

_________________
Майкл Джордан играет в баскетбол. Чарльз Мэнсон убивает людей. Я пишу код. У каждого свой талант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Модуль image
СообщениеДобавлено: 13 сен 2013, 17:57 
Не в сети
Новичок

Зарегистрирован: 10 сен 2013, 18:20
Сообщения: 12
Я понял, я просто не мог сначала понять в чем и дело. Спасибо Вам большое, что уделили время.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 4 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Все о фреймворке Kohana  | 
Powered by phpBB® Forum Software © phpBB Group