-
Posts
21 -
Joined
-
Last visited
About Panda58dev
- Birthday 02/06/2000
Technical support
-
Status
Работаю
Information
-
Gender
Мужчина
-
City:
Пенза сити :D
Recent Profile Visitors
Panda58dev's Achievements
-
Panda58dev changed their profile photo
-
Ответ сервера - файл для скачивания.
Panda58dev replied to Panda58dev's topic in Допомога програмістам та розробникам
Всё, разобрался, нужно было немного с кодировками поколдовать и правильно url сформировать. Всех благодарю, особенно @Blast ! Удачного дня -
Ответ сервера - файл для скачивания.
Panda58dev replied to Panda58dev's topic in Допомога програмістам та розробникам
Хм, похоже у меня какие то проблемы с dataType. Сейчас везде поставил json но в url почему то там где должно быть содержимое файл стоит [object%20Object] Вообще сейчас я путаюсь, что куда мне нужно кодировать json в base64 или наоборот. В результате мне нужен json массив в файле... -
Ответ сервера - файл для скачивания.
Panda58dev replied to Panda58dev's topic in Допомога програмістам та розробникам
@Blast угу, то есть, я генерирую ссылку для скачивания и записываю всю строку в url? Сделал почти так же как в Вашем примере, но выполняется .error хотя код ответа 200, разумеется подумал на ошибки PHP, но в журнале ошибок нет, error_get_last() тоже возвращает пустоту. Странное дело. Контроллер: public function getTplFile(){ if (isset($this->request->post['tpl_name'])) { $this->load->model('user/users_perm_plus'); // $data = $this->model_user_users_perm_plus->getTplPermData($this->request->post['tpl_name']); // (array) $data // $data['tpl_name'] = $this->request->post['tpl_name']; $data = 'test'; $file_name = 'upp_tpl_' . $this->request->post['tpl_name'] . '.json'; $file_data = 'data:text/plain;base64,' . base64_encode($data); $json['file_name'] = $file_name; $json['file_data'] = $file_data; $this->response->addHeader('Content-Type: text/plain'); $this->response->addHeader('Content-Disposition: attachment; filename="' . $file_name . '"'); $this->response->setOutput(json_encode($json)); // $error = error_get_last(); // $this->response->setOutput($error); } } AJAX: function getTplFile(tpl_name) { $.ajax({ url: '<?php echo $link_to_getTplFile; ?>&token=<?php echo $token; ?>', method: 'POST', dataType: 'text/plain', data: { tpl_name: tpl_name }, beforeSend: function () { $('.panel-title').html('<i class="fa-green fa fa-spinner fa-pulse fa-3x fa-fw"></i><?php echo $text_loading; ?>'); }, complete: function () { $('.panel-title').html('<i class="fa fa-table"></i>'); }, success: function(json) { console.log(json); $('#tpl-file-link').attr('href', json['file_data']).attr('download', json['file_name']); document.getElementById("tpl-file-link").click(); }, error: function (error) { console.log(error); } }); } Ответ сервера: -
Ответ сервера - файл для скачивания.
Panda58dev replied to Panda58dev's topic in Допомога програмістам та розробникам
Вообще не понял. У меня есть уже контроллер, который отдаёт файл. AJAX-ом он не обрабатывается... ocStore 2.3.0.2.4 если что... -
Ответ сервера - файл для скачивания.
Panda58dev replied to Panda58dev's topic in Допомога програмістам та розробникам
А как отправлять запрос? -
Ответ сервера - файл для скачивания.
Panda58dev replied to Panda58dev's topic in Допомога програмістам та розробникам
опять же - Вы предлагаете хранить файл на сервере. -
Ответ сервера - файл для скачивания.
Panda58dev replied to Panda58dev's topic in Допомога програмістам та розробникам
Да нет, суть заключается в том, что бы файл создавался "на лету" и не хранился на сервере. -
Здравствуйте! Есть задача - нужно, что бы на сервере формировался файл, который мог бы скачать пользователь, этим занимается отдельный метод в контроллере, который вызывается посредством AJAX запроса. На "Хабр Q&A" решение подобной задачи уже есть. Проблема заключается в том, что оно по какой то причине не работает - все заголовки отправляются, на фронт всё приходит, но вот файл никакой не качается. Скрины с ответом сервера и кодом прилагаю. Пробовал ответ сервера делать через "echo" - результат точно такой же.
-
Может костыль но на дефолтной локалке (ocStore v2.3.0.2.4), вроде работает: \catalog\view\theme\default\template\product\product.tpl строка 135 <li><?php echo $text_stock; ?> <?php echo ($stock == 0)? '<span class="label label-danger">' . $stock . '</span>' : '<span class="label label-success">' . $stock . '</span>'; ?></li>
-
Определение разрешения экрана на PHP
Panda58dev replied to romveld's topic in Opencart 3.x: General questions
Она "привязывается" к типам устройств, и имеет множество методов анализа юзер-агента: ссылка. -
Panda58dev started following ocdev_pro
-
AJAX получение шаблона.
Panda58dev replied to Panda58dev's topic in Допомога програмістам та розробникам
@ocdev_pro помог и всё разъяснил, с AJAX проблем не было, просто я обращался к методу модели, которого не было. Всем спасибо! -
AJAX получение шаблона.
Panda58dev replied to Panda58dev's topic in Допомога програмістам та розробникам
Точно, основной шаблон и метод index загружаются -
AJAX получение шаблона.
Panda58dev replied to Panda58dev's topic in Допомога програмістам та розробникам
Окей, с запросом разобрался, оказывается проблема и правда была в url: контроллер, метод index(), в нём подключаю js файл и передаю в шаблон url: $this->document->addScript('view/javascript/users_perm_plus/users_perm_plus.js'); $data['getPerms'] = $this->url->link('user/user_permission/getPerms', 'token=' . $this->session->data['token'] . $url, true); Тут-то и вся проблема - указал не тот контроллер ) Но теперь другая проблема есть: кидает вот такую ошибку: