Загрузка пользователем файла в Доске объявлений

#
Загрузка пользователем файла в Доске объявлений
Добрый день.

Столкнулся с проблемой: не могу понять, как реализовать загрузку файлов (документов, архивов и т.д.) пользователем при добавлении нового объявления в Доску объявлений (v 6.2, редакция пока - "Халява".

Создаю и подключаю доп.свойство, где в списке тип выбираю "Файл". Если загрузить при этом что-либо, кроме изображений (например, pdf или zip), то в админ-панели в разделе доп.свойств это свойство все равно пустое. При этом, если загрузить именно изображение, то его видно и на сайте, и в админ-панели.


Вопрос. Как можно реализовать загрузку именно файлов (не-изображений) пользователю через Доску объявлений? Заранее спасибо.

Весь форум, админку и документацию облазил - ответа так и не нашел
#
Re: Загрузка пользователем файла в Доске объявлений
HostDev.pw - модули для HostCMS, Telegram: @hostdev
#
Re: Загрузка пользователем файла в Доске объявлений
Спасибо, но я в config.php в 'availableExtension'уже прописал все нужные форматы. Все равно только изображения загружаются.
#
Re: Загрузка пользователем файла в Доске объявлений
EugenyP,
Maxim1441,
в стандартном ТДС доски объявления нельзя грузить ничего кроме 'JPG', 'JPEG', 'GIF', 'PNG', т.к. там стоит проверка своя уже

if (Core_File::isValidExtension($aFileData['name'], array('JPG', 'JPEG', 'GIF', 'PNG')))
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Загрузка пользователем файла в Доске объявлений
Спасибо. Я добавил в двух местах в ТДС Доски объявлений, где был указанный вами код, 'PDF'. Попробовал загрузить pdf-файл - не работает. В админ-панели все равно нет файла.
#
Re: Загрузка пользователем файла в Доске объявлений
Maxim1441,
все правильно и не будет.
нужно добавить было только в одном месте, где идет обработка доп. свойств, т.е. во втором случае, но даже и так все равно не будет работать т.к. так все сделано для обработки изображений и если бы вы посмотрели ошибки то увидели бы что то вроде "Get the size of an image error.". Вам нужно сделать общую обработку для файлов или проверять, если картинки оставить то что есть иначе просто добавлять файл без всяких resizeImage и тд, сходу подсказать код не смогу
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Загрузка пользователем файла в Доске объявлений
Спасибо. А что-то в коде менять надо, я так понимаю, в этом куске:

                  case 2: // File
                     $aFileData = Core_Array::getFiles("property_{$oProperty->id}", array());

                     // New values of property
                     if (is_array($aFileData) && isset($aFileData['name']))
                     {
                        foreach ($aFileData['name'] as $key => $sFileName)
                        {
                           $oFileValue = $oProperty->createNewValue($oShop_Item->id);

                           if (Core_File::isValidExtension($sFileName, array('JPG', 'JPEG', 'GIF', 'PNG', 'PDF')))
                           {
                              $oFileValue->file_name = Core_Str::stripTags($sFileName);
                              $oFileValue->file_small_name = Core_Str::stripTags($sFileName);
                              $oFileValue->save();

                              try
                              {
                                 $oShop_Item_Property_List->createPropertyDir($oShop_Item);

                                 Core_Image::instance()->resizeImage($aFileData['tmp_name'][$key], $oShop->image_large_max_width, $oShop->image_large_max_height, $oShop_Item_Property_List->getDirPath($oShop_Item) . $oShop_Item_Property_List->getLargeFileName($oShop_Item, $oFileValue, $sFileName));

                                 $oFileValue->file = $oShop_Item_Property_List->getLargeFileName($oShop_Item, $oFileValue, $sFileName);

                                 Core_Image::instance()->resizeImage($aFileData['tmp_name'][$key], $oShop->image_small_max_width, $oShop->image_small_max_height, $oShop_Item_Property_List->getDirPath($oShop_Item) . $oShop_Item_Property_List->getSmallFileName($oShop_Item, $oFileValue, $sFileName));

                                 $oFileValue->file_small = $oShop_Item_Property_List->getSmallFileName($oShop_Item, $oFileValue, $sFileName);

                                 $oFileValue->save();
                              }
                              catch (Exception $e) {};
                           }
                        }
                     }
#
Re: Загрузка пользователем файла в Доске объявлений
Maxim1441,
да в этом
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Загрузка пользователем файла в Доске объявлений
Ох, ребята, так и не могу решить проблему эту.

Вот как я изменил кусок кода, указанный выше, из ТДС "Деоск объявлений":
Цитата:

   case 2: // File
         $aFileData = Core_Array::getFiles("property_{$oProperty->id}", array());

         // New values of property
         if (is_array($aFileData) && isset($aFileData['name']))
         {
      foreach ($aFileData['name'] as $key => $sFileName)
            {
               $oFileValue = $oProperty->createNewValue($oShop_Item->id);

               if (Core_File::isValidExtension($sFileName, array('DOCX', 'DOC', 'PDF'))
               {
                  $oFileValue->file_name = Core_Str::stripTags($sFileName);
                  $oFileValue->save();

                  try
                  {
                     $oShop_Item_Property_List->createPropertyDir($oShop_Item);
                     $oFileValue->file = $oShop_Item_Property_List->getLargeFileName($oShop_Item, $oFileValue, $sFileName);
                     $oFileValue->save();
                  }
                  catch (Exception $e) {};
               }
            }
         }


Единственное, что удалось этим добиться, что в админке при заходе в объявление появляется иконка со ссылкой на файл, но при этом по этому адресу нет этого файла. Т.е. при добавлении объявления через сайт указанного формата, вроде как загрузка происходит, но ссылка не работает. На скрине - пример этого.


Собственно, может кто подскажет, как решить эту проблему?
#
Re: Загрузка пользователем файла в Доске объявлений
Maxim1441,
у вас нет сохранения файла

раньше был такой код сохранения файла
Core_Image::instance()->resizeImage($aFileData['tmp_name'][$key], $oShop->image_large_max_width, $oShop->image_large_max_height, $oShop_Item_Property_List->getDirPath($oShop_Item) . $oShop_Item_Property_List->getLargeFileName($oShop_Item, $oFileValue, $sFileName));

его нужно заменить на

Core_File::upload($aFileData['tmp_name'][$key], $oShop_Item_Property_List->getDirPath($oShop_Item) . $oShop_Item_Property_List->getLargeFileName($oShop_Item, $oFileValue, $sFileName) );


HostDev.pw - модули для HostCMS, Telegram: @hostdev
Авторизация