Backend - загрузка файла

Toha Cvetaev

Здравствуйте, друзья.

Возник очередной вопрос:

- как загрузить файл из своего модуля бэкенда. Роутинг в бэкенде организован $_GET параметрами. Как же отправить POST с формой и файлом? Пробовал обратиться к другому модулю для которого есть правила роутинга во фронте, приходит обратно та же страница с которой и был сделан запрос... замкнутый круг какой-то ))

8 декабря 2017
  • Михаил Ушенин Webasyst 8 декабря 2017 16:24
    Пробовал обратиться к другому модулю для которого есть правила роутинга во фронте

    Зачем? Вам же надо в бекенде загрузить файл?

    В документации были?

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

  • Toha Cvetaev 8 декабря 2017 17:55

    Необходимо загружать некоторые картинки на сервер. В документации был ))

    В логи писаться ничего не будет потому, что ошибок по сути нет.

    Не получается из backend обратиться к модулю, который умеет принимать запросы из фронта ( routing.php ).

    А по правилам роутинга backend мы должны отсылать параметры $_GET. Соответственно файл передать по $_GET мы не можем... печальная ситуация.

    Может у кого есть опыт или кто-то сталкивался с чем-то похожим?

  • Алексей Webasyst 8 декабря 2017 18:05

    Посмотрите стандартные способы загрузки те же CSV и изображения.
    файлы загружаются POST если вы конечно не отдаёте ссылку на него для GET.
    Десятки плагинов загружают файлы, поэтому многие разработчики эту задачу решили.

  • Toha Cvetaev 8 декабря 2017 18:08

    Алексей, из бэкенда плагины загружают файлы?

  • Евгений Леман 8 декабря 2017 18:09
    А по правилам роутинга backend мы должны отсылать параметры $_GET. Соответственно файл передать по $_GET мы не можем... печальная ситуация.

    Чо?

    Как же отправить POST с формой и файлом?

    <form method="post" enctype="multipart/form-data" action="?plugin=myplugin&module=image&action=upload">

    Ковыряйте примеры в уже существующем функционале. Загрузка файлов через сайт или загрузка изображений товара в магазине. Можно и примеры с $.fileupload() найти для AJAX-загрузки.

  • Toha Cvetaev 8 декабря 2017 18:41
    <form method="post" enctype="multipart/form-data" action="?plugin=myplugin&module=image&action=upload">

    action="?plugin=myplugin&module=image&action=upload"

    Евгений, вот в этом action вы как собираетесь отправить параметры после знака вопроса? У вас гетом или постом форма уйдёт или двумя сразу? ))

    Загрузка изображений товара и т.д. по-моему реализована на уровне приложения, а не в плагине бэкенда.

    Вопрос открыт ))

  • Алексей Webasyst 8 декабря 2017 19:19
    <form method="post"

    уйдет POST - логично же на адрес? который указан в action. B уже в action = upload вы ловите данные через waRequest.

  • Toha Cvetaev 14 декабря 2017 10:57

    Алексей, сделал, как вы посоветовали. Всё отработало, спасибо за дельный совет ))



Чтобы добавить комментарий, зарегистрируйтесь или войдите