Joomla 1.5 Как сделать в компоненте загрузку файлов

Discussion in 'Создание расширений для Joomla' started by SIDJoomler, Dec 24, 2010.

  1. Offline

    SIDJoomler Недавно здесь

    Joined:
    Aug 13, 2010
    Messages:
    19
    Likes Received:
    0
    Gender:
    Male
    Пишу свой компонент и потребовалось сделать, чтобы пользователь из админки мог загружать архивы на сайт. Подскажите, пожалуйста, как это можно реализовать.
     
  2.  
  3. Dead Krolik
    Offline

    Dead Krolik Недавно здесь => Cпециалист <=

    Joined:
    Apr 13, 2007
    Messages:
    3,685
    Likes Received:
    101
    Gender:
    Male
  4. Offline

    SIDJoomler Недавно здесь

    Joined:
    Aug 13, 2010
    Messages:
    19
    Likes Received:
    0
    Gender:
    Male
    Спасибо, просто я думал, может в Joomla уже есть какой-нибудь класс для работы загрузками, чтобы велосипед не изобретать. Ну ручками - значит ручками :)
     
  5. Offline

    SIDJoomler Недавно здесь

    Joined:
    Aug 13, 2010
    Messages:
    19
    Likes Received:
    0
    Gender:
    Male
    Возникли небольшие проблемы, чтобы "вписать" эту загрузку в MVC архитектуру
    в шаблоне пишу
    Код (CODE):
    1. <input type="file" name="position" id="position" >


    потом в контроллере вызывается задача сохранить
    Код (CODE):
    1. function save()
    2. {
    3.     $model = $this->getModel('positions');
    4.  
    5.     if ($model->store($post)) {
    6.         $msg = JText::_( 'Saved!' );
    7.     } else {
    8.         $msg = JText::_( 'Error Saving' );
    9.     }
    10.         $link = 'index.php?option=com_positions';
    11.     $this->setRedirect($link, $msg);
    12. }


    после уже в моделе загружаю файл
    Код (CODE):
    1. function store()
    2. {
    3.     ....
    4.     if($_FILES["position"]["size"] < 1024*1024*3)
    5.     {
    6.         if (file_exists(JPATH_SITE.DS.'images'.DS.'stories'.DS.'p&r'.DS.$_FILES["position"]["name"]))
    7.             unlink(JPATH_SITE.DS.'images'.DS.'stories'.DS.'p&r'.DS.$_FILES["position"]["name"]);
    8.         move_uploaded_file($_FILES["position"]["name"], JPATH_SITE.DS.'images'.DS.'stories'.DS.'p&r'.DS.$_FILES["position"]["name"]);
    9.  
    10.     }
    11.     else
    12.     {
    13.         $this->setError(JText::_( 'File size too big!' ));
    14.         return false;
    15.     }
    16.         return true;
    17. }

    файл не сохраняется, в чём проблема?
     
    Last edited: Dec 30, 2010
  6. omfgpanda
    Offline

    omfgpanda Недавно здесь => Cпециалист <=

    Joined:
    Jan 22, 2008
    Messages:
    673
    Likes Received:
    53
    Gender:
    Male
    строчку <form .... > пожалуйста
     
  7. Offline

    SIDJoomler Недавно здесь

    Joined:
    Aug 13, 2010
    Messages:
    19
    Likes Received:
    0
    Gender:
    Male
    Код (CODE):
    1. <form action="index.php" method="post" name="adminForm" id="adminForm" enctype="multipart/form-data">
    2. ...
    3. </form>
     
  8. omfgpanda
    Offline

    omfgpanda Недавно здесь => Cпециалист <=

    Joined:
    Jan 22, 2008
    Messages:
    673
    Likes Received:
    53
    Gender:
    Male
    хмм.... а скрипт проходит полный цикл или появляются ошибки? что лежит в $_FILES ?
     
  9. Offline

    SIDJoomler Недавно здесь

    Joined:
    Aug 13, 2010
    Messages:
    19
    Likes Received:
    0
    Gender:
    Male
    Всем спасибо за ответы, разобрался.
    В строчке
    move_uploaded_file($_FILES["position"]["name"], JPATH_SITE.DS.'images'.DS.'stories'.DS.'p&r'.DS.$_FILES["position"]["name"]);
    вместо $_FILES["position"]["name"] нужно $_FILES["position"]["temp_name"] вставить, т.к. в первом случае передаётся только имя файла с расширением, а во втором - полный путь до него. Это для тех, кто с таким, возможно, столкнётся :)
     
    Last edited: Jan 11, 2011
  10. Offline

    botanist Активист => Cпециалист <=

    Joined:
    Feb 15, 2009
    Messages:
    461
    Likes Received:
    49
    Gender:
    Male
  11. Offline

    SIDJoomler Недавно здесь

    Joined:
    Aug 13, 2010
    Messages:
    19
    Likes Received:
    0
    Gender:
    Male
    Буду иметь ввиду на будущее :)
     

Share This Page

Loading...