sergei5770 Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 (змінено) Всем здравствуйте! Кто нибудь исправлял следующий косяк: Когда заливаешь файл с названием, который когда то уже был залит, файл заменяется на новый, а не присваивается файлу какая нибудь цифра, типа новый файл(1), новый файл(2), не очень удобно, когда товар уже залит, заливаешь к нему картинку, а она заменяется где нибудь в другом товаре, кто знает как это исправить/доработать? Версия 1.5.5.2 Змінено 10 жовтня 2016 користувачем sergei5770 Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 самое простое - не сваливать все файлы в одну кучу, а хранить их для каждого товара в отдельной папке с названием товара Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 10 жовтня 2016 Автор Share Опубліковано: 10 жовтня 2016 самое простое - не сваливать все файлы в одну кучу, а хранить их для каждого товара в отдельной папке с названием товара хотелось бы конечно чтоб это все работало без всяких обходных путей, за все время существования движка так и не взялся никто за исправления этой ерунды? Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 10 жовтня 2016 Автор Share Опубліковано: 10 жовтня 2016 это не косяк сайта. я считаю, что это недоработка разработчиков движка, по крайней мере хотя бы платное решение проблемы, но должно быть Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 я считаю, что это недоработка разработчиков движка, по крайней мере хотя бы платное решение проблемы, но должно быть Вы можете считать как угодно, чей это косяк. Покупая книги, например собрания сочинений, вы не будете покупать два тома, вы оставите один, в крайнем случае, вы их поставите рядом, но оба они будут одинаковыми томами, но книжная полка - это не машина Или когда садитесь в поезд, то там будет только один 9-й вагон, и будет он после 8-го, а не перед 10-м :) А если вам нужно заменить существующий файл? Начните с самоорганизации себя Надіслати Поділитися на інших сайтах More sharing options... Strelez Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 (змінено) А если вам нужно заменить существующий файл? Удалить ненужный и залить новый с тем же именем :-D Правда потом захочется и этот процесс автоматизировать и так до ∞... Змінено 10 жовтня 2016 користувачем Strelez Надіслати Поділитися на інших сайтах More sharing options... agefremov Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 Тут правда, лучше сразу начать порядок наводить, а то потом поздно: тормоза, путаница, сплошной геморой. Я на 1.5.5.1.2 вот эту адаптацию файлового менеджера использую. Мультизагрузка есть, случайно файлы не перезаписывает (правда и не переименовывает, просто не загружает), проблемные символы в названиях не пропускает. В принципе, переименование можно "запилить" самостоятельно попробовать. Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 11 жовтня 2016 Автор Share Опубліковано: 11 жовтня 2016 (змінено) А ни кто не подскажет, как формировать имя файла по id, сижу копаю filemanager.php, как я понял он формирует имя где то здесь, но я скорей всего ошибаюсь: $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); Выборку максимального id я в принципе могу осуществить запросом: $autoname_query1 = $this->db->query("SELECT MAX(product_image_id) FROM " . DB_PREFIX . "product_image"); Ну и получу следующий по списку id как то так $autoname_query1->row["MAX(product_image_id)"]+1; Кто может подсказать, как мне этот id потом вписать в имя файла, даже скажем пусть не перезаписать имя, а добавить в конец, например, этот id? Змінено 11 жовтня 2016 користувачем sergei5770 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } а куда вставлять код? в filemanager.php? после какой строчки? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 а куда вставлять код? в filemanager.php? после какой строчки? Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений нашел это место теперь правда при загрузке пишет "некорректный тип файла", не подскажете в чем может быть косяк? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Я так понимаю эта функция отвечает за загрузку картинки, и сделал примерно так: public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists('image/' . $file)) { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; Файл стал загружаться, но он по прежнему перезаписывается, как будто игнорит проверку Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 (змінено) Все, разобрался, спасибо пользователю shalan, кароч пишу решение для версии 1.5.5.1(на счет остальных версий не знаю) В файле admin/controller/common/filemanager.php, пишем: В функции public function upload() После $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); Добавляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_IMAGE . 'data/' . $file)) { while(file_exists($directory . '/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; После if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } Удаляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); Все, теперь к повторяющимся названиям будут прибавляться цифры 1,2,3 и т.д. Змінено 14 жовтня 2016 користувачем sergei5770 1 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory перестает заливать картинки, просто зависает в загрузке Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 код в студию Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 код в студию $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування Замена файлов с одинаковым названием Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
AlexDW Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 самое простое - не сваливать все файлы в одну кучу, а хранить их для каждого товара в отдельной папке с названием товара Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 10 жовтня 2016 Автор Share Опубліковано: 10 жовтня 2016 самое простое - не сваливать все файлы в одну кучу, а хранить их для каждого товара в отдельной папке с названием товара хотелось бы конечно чтоб это все работало без всяких обходных путей, за все время существования движка так и не взялся никто за исправления этой ерунды? Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 10 жовтня 2016 Автор Share Опубліковано: 10 жовтня 2016 это не косяк сайта. я считаю, что это недоработка разработчиков движка, по крайней мере хотя бы платное решение проблемы, но должно быть Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 я считаю, что это недоработка разработчиков движка, по крайней мере хотя бы платное решение проблемы, но должно быть Вы можете считать как угодно, чей это косяк. Покупая книги, например собрания сочинений, вы не будете покупать два тома, вы оставите один, в крайнем случае, вы их поставите рядом, но оба они будут одинаковыми томами, но книжная полка - это не машина Или когда садитесь в поезд, то там будет только один 9-й вагон, и будет он после 8-го, а не перед 10-м :) А если вам нужно заменить существующий файл? Начните с самоорганизации себя Надіслати Поділитися на інших сайтах More sharing options... Strelez Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 (змінено) А если вам нужно заменить существующий файл? Удалить ненужный и залить новый с тем же именем :-D Правда потом захочется и этот процесс автоматизировать и так до ∞... Змінено 10 жовтня 2016 користувачем Strelez Надіслати Поділитися на інших сайтах More sharing options... agefremov Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 Тут правда, лучше сразу начать порядок наводить, а то потом поздно: тормоза, путаница, сплошной геморой. Я на 1.5.5.1.2 вот эту адаптацию файлового менеджера использую. Мультизагрузка есть, случайно файлы не перезаписывает (правда и не переименовывает, просто не загружает), проблемные символы в названиях не пропускает. В принципе, переименование можно "запилить" самостоятельно попробовать. Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 11 жовтня 2016 Автор Share Опубліковано: 11 жовтня 2016 (змінено) А ни кто не подскажет, как формировать имя файла по id, сижу копаю filemanager.php, как я понял он формирует имя где то здесь, но я скорей всего ошибаюсь: $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); Выборку максимального id я в принципе могу осуществить запросом: $autoname_query1 = $this->db->query("SELECT MAX(product_image_id) FROM " . DB_PREFIX . "product_image"); Ну и получу следующий по списку id как то так $autoname_query1->row["MAX(product_image_id)"]+1; Кто может подсказать, как мне этот id потом вписать в имя файла, даже скажем пусть не перезаписать имя, а добавить в конец, например, этот id? Змінено 11 жовтня 2016 користувачем sergei5770 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } а куда вставлять код? в filemanager.php? после какой строчки? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 а куда вставлять код? в filemanager.php? после какой строчки? Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений нашел это место теперь правда при загрузке пишет "некорректный тип файла", не подскажете в чем может быть косяк? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Я так понимаю эта функция отвечает за загрузку картинки, и сделал примерно так: public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists('image/' . $file)) { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; Файл стал загружаться, но он по прежнему перезаписывается, как будто игнорит проверку Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 (змінено) Все, разобрался, спасибо пользователю shalan, кароч пишу решение для версии 1.5.5.1(на счет остальных версий не знаю) В файле admin/controller/common/filemanager.php, пишем: В функции public function upload() После $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); Добавляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_IMAGE . 'data/' . $file)) { while(file_exists($directory . '/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; После if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } Удаляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); Все, теперь к повторяющимся названиям будут прибавляться цифры 1,2,3 и т.д. Змінено 14 жовтня 2016 користувачем sergei5770 1 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory перестает заливать картинки, просто зависает в загрузке Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 код в студию Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 код в студию $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування Замена файлов с одинаковым названием Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
sergei5770 Опубліковано: 10 жовтня 2016 Автор Share Опубліковано: 10 жовтня 2016 самое простое - не сваливать все файлы в одну кучу, а хранить их для каждого товара в отдельной папке с названием товара хотелось бы конечно чтоб это все работало без всяких обходных путей, за все время существования движка так и не взялся никто за исправления этой ерунды? Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 10 жовтня 2016 Автор Share Опубліковано: 10 жовтня 2016 это не косяк сайта. я считаю, что это недоработка разработчиков движка, по крайней мере хотя бы платное решение проблемы, но должно быть Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 я считаю, что это недоработка разработчиков движка, по крайней мере хотя бы платное решение проблемы, но должно быть Вы можете считать как угодно, чей это косяк. Покупая книги, например собрания сочинений, вы не будете покупать два тома, вы оставите один, в крайнем случае, вы их поставите рядом, но оба они будут одинаковыми томами, но книжная полка - это не машина Или когда садитесь в поезд, то там будет только один 9-й вагон, и будет он после 8-го, а не перед 10-м :) А если вам нужно заменить существующий файл? Начните с самоорганизации себя Надіслати Поділитися на інших сайтах More sharing options... Strelez Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 (змінено) А если вам нужно заменить существующий файл? Удалить ненужный и залить новый с тем же именем :-D Правда потом захочется и этот процесс автоматизировать и так до ∞... Змінено 10 жовтня 2016 користувачем Strelez Надіслати Поділитися на інших сайтах More sharing options... agefremov Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 Тут правда, лучше сразу начать порядок наводить, а то потом поздно: тормоза, путаница, сплошной геморой. Я на 1.5.5.1.2 вот эту адаптацию файлового менеджера использую. Мультизагрузка есть, случайно файлы не перезаписывает (правда и не переименовывает, просто не загружает), проблемные символы в названиях не пропускает. В принципе, переименование можно "запилить" самостоятельно попробовать. Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 11 жовтня 2016 Автор Share Опубліковано: 11 жовтня 2016 (змінено) А ни кто не подскажет, как формировать имя файла по id, сижу копаю filemanager.php, как я понял он формирует имя где то здесь, но я скорей всего ошибаюсь: $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); Выборку максимального id я в принципе могу осуществить запросом: $autoname_query1 = $this->db->query("SELECT MAX(product_image_id) FROM " . DB_PREFIX . "product_image"); Ну и получу следующий по списку id как то так $autoname_query1->row["MAX(product_image_id)"]+1; Кто может подсказать, как мне этот id потом вписать в имя файла, даже скажем пусть не перезаписать имя, а добавить в конец, например, этот id? Змінено 11 жовтня 2016 користувачем sergei5770 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } а куда вставлять код? в filemanager.php? после какой строчки? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 а куда вставлять код? в filemanager.php? после какой строчки? Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений нашел это место теперь правда при загрузке пишет "некорректный тип файла", не подскажете в чем может быть косяк? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Я так понимаю эта функция отвечает за загрузку картинки, и сделал примерно так: public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists('image/' . $file)) { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; Файл стал загружаться, но он по прежнему перезаписывается, как будто игнорит проверку Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 (змінено) Все, разобрался, спасибо пользователю shalan, кароч пишу решение для версии 1.5.5.1(на счет остальных версий не знаю) В файле admin/controller/common/filemanager.php, пишем: В функции public function upload() После $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); Добавляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_IMAGE . 'data/' . $file)) { while(file_exists($directory . '/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; После if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } Удаляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); Все, теперь к повторяющимся названиям будут прибавляться цифры 1,2,3 и т.д. Змінено 14 жовтня 2016 користувачем sergei5770 1 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory перестает заливать картинки, просто зависает в загрузке Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 код в студию Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 код в студию $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування Замена файлов с одинаковым названием Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
sergei5770 Опубліковано: 10 жовтня 2016 Автор Share Опубліковано: 10 жовтня 2016 это не косяк сайта. я считаю, что это недоработка разработчиков движка, по крайней мере хотя бы платное решение проблемы, но должно быть Надіслати Поділитися на інших сайтах More sharing options... chukcha Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 я считаю, что это недоработка разработчиков движка, по крайней мере хотя бы платное решение проблемы, но должно быть Вы можете считать как угодно, чей это косяк. Покупая книги, например собрания сочинений, вы не будете покупать два тома, вы оставите один, в крайнем случае, вы их поставите рядом, но оба они будут одинаковыми томами, но книжная полка - это не машина Или когда садитесь в поезд, то там будет только один 9-й вагон, и будет он после 8-го, а не перед 10-м :) А если вам нужно заменить существующий файл? Начните с самоорганизации себя Надіслати Поділитися на інших сайтах More sharing options... Strelez Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 (змінено) А если вам нужно заменить существующий файл? Удалить ненужный и залить новый с тем же именем :-D Правда потом захочется и этот процесс автоматизировать и так до ∞... Змінено 10 жовтня 2016 користувачем Strelez Надіслати Поділитися на інших сайтах More sharing options... agefremov Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 Тут правда, лучше сразу начать порядок наводить, а то потом поздно: тормоза, путаница, сплошной геморой. Я на 1.5.5.1.2 вот эту адаптацию файлового менеджера использую. Мультизагрузка есть, случайно файлы не перезаписывает (правда и не переименовывает, просто не загружает), проблемные символы в названиях не пропускает. В принципе, переименование можно "запилить" самостоятельно попробовать. Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 11 жовтня 2016 Автор Share Опубліковано: 11 жовтня 2016 (змінено) А ни кто не подскажет, как формировать имя файла по id, сижу копаю filemanager.php, как я понял он формирует имя где то здесь, но я скорей всего ошибаюсь: $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); Выборку максимального id я в принципе могу осуществить запросом: $autoname_query1 = $this->db->query("SELECT MAX(product_image_id) FROM " . DB_PREFIX . "product_image"); Ну и получу следующий по списку id как то так $autoname_query1->row["MAX(product_image_id)"]+1; Кто может подсказать, как мне этот id потом вписать в имя файла, даже скажем пусть не перезаписать имя, а добавить в конец, например, этот id? Змінено 11 жовтня 2016 користувачем sergei5770 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } а куда вставлять код? в filemanager.php? после какой строчки? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 а куда вставлять код? в filemanager.php? после какой строчки? Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений нашел это место теперь правда при загрузке пишет "некорректный тип файла", не подскажете в чем может быть косяк? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Я так понимаю эта функция отвечает за загрузку картинки, и сделал примерно так: public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists('image/' . $file)) { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; Файл стал загружаться, но он по прежнему перезаписывается, как будто игнорит проверку Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 (змінено) Все, разобрался, спасибо пользователю shalan, кароч пишу решение для версии 1.5.5.1(на счет остальных версий не знаю) В файле admin/controller/common/filemanager.php, пишем: В функции public function upload() После $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); Добавляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_IMAGE . 'data/' . $file)) { while(file_exists($directory . '/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; После if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } Удаляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); Все, теперь к повторяющимся названиям будут прибавляться цифры 1,2,3 и т.д. Змінено 14 жовтня 2016 користувачем sergei5770 1 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory перестает заливать картинки, просто зависает в загрузке Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 код в студию Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 код в студию $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування Замена файлов с одинаковым названием Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
chukcha Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 я считаю, что это недоработка разработчиков движка, по крайней мере хотя бы платное решение проблемы, но должно быть Вы можете считать как угодно, чей это косяк. Покупая книги, например собрания сочинений, вы не будете покупать два тома, вы оставите один, в крайнем случае, вы их поставите рядом, но оба они будут одинаковыми томами, но книжная полка - это не машина Или когда садитесь в поезд, то там будет только один 9-й вагон, и будет он после 8-го, а не перед 10-м :) А если вам нужно заменить существующий файл? Начните с самоорганизации себя Надіслати Поділитися на інших сайтах More sharing options... Strelez Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 (змінено) А если вам нужно заменить существующий файл? Удалить ненужный и залить новый с тем же именем :-D Правда потом захочется и этот процесс автоматизировать и так до ∞... Змінено 10 жовтня 2016 користувачем Strelez Надіслати Поділитися на інших сайтах More sharing options... agefremov Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 Тут правда, лучше сразу начать порядок наводить, а то потом поздно: тормоза, путаница, сплошной геморой. Я на 1.5.5.1.2 вот эту адаптацию файлового менеджера использую. Мультизагрузка есть, случайно файлы не перезаписывает (правда и не переименовывает, просто не загружает), проблемные символы в названиях не пропускает. В принципе, переименование можно "запилить" самостоятельно попробовать. Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 11 жовтня 2016 Автор Share Опубліковано: 11 жовтня 2016 (змінено) А ни кто не подскажет, как формировать имя файла по id, сижу копаю filemanager.php, как я понял он формирует имя где то здесь, но я скорей всего ошибаюсь: $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); Выборку максимального id я в принципе могу осуществить запросом: $autoname_query1 = $this->db->query("SELECT MAX(product_image_id) FROM " . DB_PREFIX . "product_image"); Ну и получу следующий по списку id как то так $autoname_query1->row["MAX(product_image_id)"]+1; Кто может подсказать, как мне этот id потом вписать в имя файла, даже скажем пусть не перезаписать имя, а добавить в конец, например, этот id? Змінено 11 жовтня 2016 користувачем sergei5770 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } а куда вставлять код? в filemanager.php? после какой строчки? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 а куда вставлять код? в filemanager.php? после какой строчки? Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений нашел это место теперь правда при загрузке пишет "некорректный тип файла", не подскажете в чем может быть косяк? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Я так понимаю эта функция отвечает за загрузку картинки, и сделал примерно так: public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists('image/' . $file)) { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; Файл стал загружаться, но он по прежнему перезаписывается, как будто игнорит проверку Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 (змінено) Все, разобрался, спасибо пользователю shalan, кароч пишу решение для версии 1.5.5.1(на счет остальных версий не знаю) В файле admin/controller/common/filemanager.php, пишем: В функции public function upload() После $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); Добавляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_IMAGE . 'data/' . $file)) { while(file_exists($directory . '/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; После if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } Удаляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); Все, теперь к повторяющимся названиям будут прибавляться цифры 1,2,3 и т.д. Змінено 14 жовтня 2016 користувачем sergei5770 1 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory перестает заливать картинки, просто зависает в загрузке Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 код в студию Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 код в студию $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування Замена файлов с одинаковым названием Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
Strelez Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 (змінено) А если вам нужно заменить существующий файл? Удалить ненужный и залить новый с тем же именем :-D Правда потом захочется и этот процесс автоматизировать и так до ∞... Змінено 10 жовтня 2016 користувачем Strelez Надіслати Поділитися на інших сайтах More sharing options...
agefremov Опубліковано: 10 жовтня 2016 Share Опубліковано: 10 жовтня 2016 Тут правда, лучше сразу начать порядок наводить, а то потом поздно: тормоза, путаница, сплошной геморой. Я на 1.5.5.1.2 вот эту адаптацию файлового менеджера использую. Мультизагрузка есть, случайно файлы не перезаписывает (правда и не переименовывает, просто не загружает), проблемные символы в названиях не пропускает. В принципе, переименование можно "запилить" самостоятельно попробовать. Надіслати Поділитися на інших сайтах More sharing options...
sergei5770 Опубліковано: 11 жовтня 2016 Автор Share Опубліковано: 11 жовтня 2016 (змінено) А ни кто не подскажет, как формировать имя файла по id, сижу копаю filemanager.php, как я понял он формирует имя где то здесь, но я скорей всего ошибаюсь: $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); Выборку максимального id я в принципе могу осуществить запросом: $autoname_query1 = $this->db->query("SELECT MAX(product_image_id) FROM " . DB_PREFIX . "product_image"); Ну и получу следующий по списку id как то так $autoname_query1->row["MAX(product_image_id)"]+1; Кто может подсказать, как мне этот id потом вписать в имя файла, даже скажем пусть не перезаписать имя, а добавить в конец, например, этот id? Змінено 11 жовтня 2016 користувачем sergei5770 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } а куда вставлять код? в filemanager.php? после какой строчки? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 а куда вставлять код? в filemanager.php? после какой строчки? Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений нашел это место теперь правда при загрузке пишет "некорректный тип файла", не подскажете в чем может быть косяк? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Я так понимаю эта функция отвечает за загрузку картинки, и сделал примерно так: public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists('image/' . $file)) { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; Файл стал загружаться, но он по прежнему перезаписывается, как будто игнорит проверку Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 (змінено) Все, разобрался, спасибо пользователю shalan, кароч пишу решение для версии 1.5.5.1(на счет остальных версий не знаю) В файле admin/controller/common/filemanager.php, пишем: В функции public function upload() После $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); Добавляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_IMAGE . 'data/' . $file)) { while(file_exists($directory . '/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; После if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } Удаляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); Все, теперь к повторяющимся названиям будут прибавляться цифры 1,2,3 и т.д. Змінено 14 жовтня 2016 користувачем sergei5770 1 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory перестает заливать картинки, просто зависает в загрузке Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 код в студию Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 код в студию $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування Замена файлов с одинаковым названием Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } 1 Надіслати Поділитися на інших сайтах More sharing options...
sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 код для добавления номера к названию файла $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_FREEDOWNLOAD . $file)) { while(file_exists(DIR_FREEDOWNLOAD . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } а куда вставлять код? в filemanager.php? после какой строчки? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 а куда вставлять код? в filemanager.php? после какой строчки? Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений нашел это место теперь правда при загрузке пишет "некорректный тип файла", не подскажете в чем может быть косяк? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Я так понимаю эта функция отвечает за загрузку картинки, и сделал примерно так: public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists('image/' . $file)) { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; Файл стал загружаться, но он по прежнему перезаписывается, как будто игнорит проверку Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 (змінено) Все, разобрался, спасибо пользователю shalan, кароч пишу решение для версии 1.5.5.1(на счет остальных версий не знаю) В файле admin/controller/common/filemanager.php, пишем: В функции public function upload() После $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); Добавляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_IMAGE . 'data/' . $file)) { while(file_exists($directory . '/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; После if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } Удаляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); Все, теперь к повторяющимся названиям будут прибавляться цифры 1,2,3 и т.д. Змінено 14 жовтня 2016 користувачем sergei5770 1 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory перестает заливать картинки, просто зависает в загрузке Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 код в студию Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 код в студию $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування Замена файлов с одинаковым названием Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 а куда вставлять код? в filemanager.php? после какой строчки? Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений Надіслати Поділитися на інших сайтах More sharing options...
sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Это пример, Вставлять в том месте, где формируется имя файла. DIR_FREEDOWNLOAD заменить на каталог изображений нашел это место теперь правда при загрузке пишет "некорректный тип файла", не подскажете в чем может быть косяк? Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Я так понимаю эта функция отвечает за загрузку картинки, и сделал примерно так: public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists('image/' . $file)) { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; Файл стал загружаться, но он по прежнему перезаписывается, как будто игнорит проверку Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 (змінено) Все, разобрался, спасибо пользователю shalan, кароч пишу решение для версии 1.5.5.1(на счет остальных версий не знаю) В файле admin/controller/common/filemanager.php, пишем: В функции public function upload() После $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); Добавляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_IMAGE . 'data/' . $file)) { while(file_exists($directory . '/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; После if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } Удаляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); Все, теперь к повторяющимся названиям будут прибавляться цифры 1,2,3 и т.д. Змінено 14 жовтня 2016 користувачем sergei5770 1 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory перестает заливать картинки, просто зависает в загрузке Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 код в студию Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 код в студию $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування Замена файлов с одинаковым названием Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Надіслати Поділитися на інших сайтах More sharing options...
sergei5770 Опубліковано: 13 жовтня 2016 Автор Share Опубліковано: 13 жовтня 2016 Видимо что-то не так поправили... Надо смотреть код. Я так понимаю эта функция отвечает за загрузку картинки, и сделал примерно так: public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = basename(html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8')); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists('image/' . $file)) { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; 1 Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; Файл стал загружаться, но он по прежнему перезаписывается, как будто игнорит проверку Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 (змінено) Все, разобрался, спасибо пользователю shalan, кароч пишу решение для версии 1.5.5.1(на счет остальных версий не знаю) В файле admin/controller/common/filemanager.php, пишем: В функции public function upload() После $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); Добавляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_IMAGE . 'data/' . $file)) { while(file_exists($directory . '/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; После if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } Удаляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); Все, теперь к повторяющимся названиям будут прибавляться цифры 1,2,3 и т.д. Змінено 14 жовтня 2016 користувачем sergei5770 1 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory перестает заливать картинки, просто зависает в загрузке Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 код в студию Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 код в студию $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування Замена файлов с одинаковым названием Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
shalan Опубліковано: 13 жовтня 2016 Share Опубліковано: 13 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; 1 Надіслати Поділитися на інших сайтах More sharing options...
sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 после { while(file_exists('image/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } добавить $filename = $file; Файл стал загружаться, но он по прежнему перезаписывается, как будто игнорит проверку Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 (змінено) Все, разобрался, спасибо пользователю shalan, кароч пишу решение для версии 1.5.5.1(на счет остальных версий не знаю) В файле admin/controller/common/filemanager.php, пишем: В функции public function upload() После $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); Добавляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_IMAGE . 'data/' . $file)) { while(file_exists($directory . '/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; После if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } Удаляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); Все, теперь к повторяющимся названиям будут прибавляться цифры 1,2,3 и т.д. Змінено 14 жовтня 2016 користувачем sergei5770 1 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory перестает заливать картинки, просто зависает в загрузке Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 код в студию Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 код в студию $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування Замена файлов с одинаковым названием Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 (змінено) Все, разобрался, спасибо пользователю shalan, кароч пишу решение для версии 1.5.5.1(на счет остальных версий не знаю) В файле admin/controller/common/filemanager.php, пишем: В функции public function upload() После $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); Добавляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists(DIR_IMAGE . 'data/' . $file)) { while(file_exists($directory . '/' . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; После if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } Удаляем $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); Все, теперь к повторяющимся названиям будут прибавляться цифры 1,2,3 и т.д. Змінено 14 жовтня 2016 користувачем sergei5770 1 Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory перестает заливать картинки, просто зависает в загрузке Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 код в студию Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 код в студию $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування Замена файлов с одинаковым названием Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory Надіслати Поділитися на інших сайтах More sharing options...
sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 текущая директория видимо задается строкой $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); т..е. вместо DIR_IMAGE используем $directory перестает заливать картинки, просто зависает в загрузке Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 код в студию Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 код в студию $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування Замена файлов с одинаковым названием Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення Повний пакет SEO Автор: GeekoDev SameSite Session Fix Opencart 3 Автор: web_bond SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich
shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 код в студию Надіслати Поділитися на інших сайтах More sharing options...
sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 код в студию $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Встановлення, оновлення, налаштування Замена файлов с одинаковым названием
shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 ...опять надо догадыватьсяпеременная $directory инициализируется ниже чем используется Надіслати Поділитися на інших сайтах More sharing options...
sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 ...опять надо догадываться переменная $directory инициализируется ниже чем используется public function upload() { $this->language->load('common/filemanager'); $json = array(); if (isset($this->request->post['directory'])) { if (isset($this->request->files['image']) && $this->request->files['image']['tmp_name']) { $filename = html_entity_decode($this->request->files['image']['name'], ENT_QUOTES, 'UTF-8'); $file = $filename; $cnt = 1; $fileextention = substr(strrchr($file, '.'), 0); $filename = substr($file, 0, strrpos($file, '.')); if(file_exists($directory . $file)) { while(file_exists($directory . $filename . $cnt . $fileextention)) $cnt ++; $file = $filename . $cnt . $fileextention; } $filename = $file; if ((strlen($filename) < 3) || (strlen($filename) > 255)) { $json['error'] = $this->language->get('error_filename'); } $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); if (!is_dir($directory)) { $json['error'] = $this->language->get('error_directory'); } if ($this->request->files['image']['size'] > 300000) { $json['error'] = $this->language->get('error_file_size'); } $allowed = array( 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png', 'image/gif', 'application/x-shockwave-flash' ); if (!in_array($this->request->files['image']['type'], $allowed)) { $json['error'] = $this->language->get('error_file_type'); } $allowed = array( '.jpg', '.jpeg', '.gif', '.png', '.flv' ); if (!in_array(strtolower(strrchr($filename, '.')), $allowed)) { $json['error'] = $this->language->get('error_file_type'); } if ($this->request->files['image']['error'] != UPLOAD_ERR_OK) { $json['error'] = 'error_upload_' . $this->request->files['image']['error']; } } else { $json['error'] = $this->language->get('error_file'); } } else { $json['error'] = $this->language->get('error_directory'); } if (!$this->user->hasPermission('modify', 'common/filemanager')) { $json['error'] = $this->language->get('error_permission'); } if (!isset($json['error'])) { if (@move_uploaded_file($this->request->files['image']['tmp_name'], $directory . '/' . $filename)) { $json['success'] = $this->language->get('text_uploaded'); } else { $json['error'] = $this->language->get('error_uploaded'); } } $this->response->setOutput(json_encode($json)); } Так выглядит весь upload Надіслати Поділитися на інших сайтах More sharing options... shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options... sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
shalan Опубліковано: 14 жовтня 2016 Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; Надіслати Поділитися на інших сайтах More sharing options...
sergei5770 Опубліковано: 14 жовтня 2016 Автор Share Опубліковано: 14 жовтня 2016 перенесите $directory = rtrim(DIR_IMAGE . 'data/' . str_replace('../', '', $this->request->post['directory']), '/'); выше чем $file = $filename; да яв первую очередь это сделал, он начинает перезаписывать файлы снова Надіслати Поділитися на інших сайтах More sharing options... Назад 1 2 Вперед Сторінка 1 з 2 Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
Recommended Posts