Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

предупреждение при загрузке файла в ФМ


Recommended Posts

Всем привет. Есть ocshop  1.5.6.4. Проблема такая, при загрузке фото в стандартном файловом менеджере фотки с названием, которое уже есть, он его заменяет, на новое.  А можно сделать как-то, что бы предупреждал, или хотя бы дублировал? 

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

Надіслати
Поділитися на інших сайтах


Загрузка и проверка происходит в контроллере common/filemanager, который находится в файле admin/controller/common/filemanager.php, а именно в функции upload. Там же можно добавить проверку или переименование файла, если такой уже существует. Для примера приведу отрезки кода из этой функции с проверкой и переименованием:

if (!$this->user->hasPermission('modify', 'common/filemanager')) {
		$json['error'] = $this->language->get('error_permission');  
}

##############

// Вариант 1. Проверка
if(file_exists($directory . '/' . $filename)){
		$json['error'] = $this->language->get('error_file_exists'); // не забудьте добавить error_file_exists в языковой файл common/filemanager  
}

// Вариант 2. Переименование
if(file_exists($directory . '/' . $filename)){
	$counter = 1; //объявляем счетчик
	$info = pathinfo($filename); //разбираем название файла и расширение
	$new_filename = $info['filename'] . $counter . $info['extension']; //генерируем новое имя файла
	while(file_exists($directory . '/' . $new_filename)){ 
		$new_filename = $info['filename'] . $counter . $info['extension'];
		$counter++;
	}
	$filename = $new_filename;
}

##############

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');
	}
}

Код не проверял, но должен работать. И второй вариант будет работать на PHP 5.2 и старше т.к. filename pathinfo начала возвращать именно с этой версии.

  • +1 1
Надіслати
Поділитися на інших сайтах

Спасибо, прописал 1-ый вариант, добавил в языки, все пашет отлично. 2-ой не тестил.

Блин, вот это я велосипед там придумывал, а по факту 2 строчки кода)

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.