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

[Решено] Не могу разобраться с опцией файл


Recommended Posts

Никак не могу понять,не работает опция файл,при попытке загрузки файла на сервер выдаёт ошибку "Недопустимый тип файла"
Речь идёт не о файлах для скачивания,а именно о файлах которые через опцию "Файл" могут загружать клиенты.

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


не надо грузить невесть что.

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

надо что-то еще? - добавляем расширения и mime-type в разрешенные (в настройках магазина) и радуемся.

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

ошибку "Недопустимый тип файла" ты получишь ТОЛЬКО если расширение не указано в разрешенных. ВСЁ.

в других ситуациях будет ДРУГАЯ ошибка.

покажи товар с опцией файл на пациенте и скриншот настроек магазина (вкладка сервер) из админки.

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

ошибку "Недопустимый тип файла" ты получишь ТОЛЬКО если расширение не указано в разрешенных. ВСЁ.

в других ситуациях будет ДРУГАЯ ошибка.

покажи товар с опцией файл на пациенте и скриншот настроек магазина (вкладка сервер) из админки.

http://lograr.ru/tipografia/reklamnaaya-poligrafiya/bukleti.html

e65f14188bfa.jpg627e7722635e.jpg

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


покажи метод upload() из контроллера product.php

public function upload() {

$this->language->load('product/product');
 
$json = array();
 
if (!empty($this->request->files['file']['name'])) {
$filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8')));
 
if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) {
        $json['error'] = $this->language->get('error_filename');
  }  
 
$allowed = array();
 
$filetypes = explode(',', $this->config->get('config_upload_allowed'));
 
foreach ($filetypes as $filetype) {
$allowed[] = trim($filetype);
}
 
if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) {
$json['error'] = $this->language->get('error_filetype');
        }
 
if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) {
$json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']);
}
} else {
$json['error'] = $this->language->get('error_upload');
}
 
if (!$json) {
if (is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) {
$file = basename($filename) . '.' . md5(mt_rand());
 
// Hide the uploaded file name so people can not link to it directly.
$json['file'] = $this->encryption->encrypt($file);
 
move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file);
}
 
$json['success'] = $this->language->get('text_upload');
}
 
$this->response->setOutput(json_encode($json));
}
}

?>

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


попробуйте приведенный код заменить на штатный от ocstore 1.5.5.1.2

public function upload() {
$this->language->load('product/product');

$json = array();

if (!empty($this->request->files['file']['name'])) {
$filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8')));

if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) {
$json['error'] = $this->language->get('error_filename');
}

// Allowed file extension types
$allowed = array();

$filetypes = explode("\n", $this->config->get('config_file_extension_allowed'));

foreach ($filetypes as $filetype) {
$allowed[] = trim($filetype);
}

if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) {
$json['error'] = $this->language->get('error_filetype');
}

// Allowed file mime types
$allowed = array();

$filetypes = explode("\n", $this->config->get('config_file_mime_allowed'));

foreach ($filetypes as $filetype) {
$allowed[] = trim($filetype);
}

if (!in_array($this->request->files['file']['type'], $allowed)) {
$json['error'] = $this->language->get('error_filetype');
}

if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) {
$json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']);
}
} else {
$json['error'] = $this->language->get('error_upload');
}

if (!$json && is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) {
$file = basename($filename) . '.' . md5(mt_rand());

// Hide the uploaded file name so people can not link to it directly.
$json['file'] = $this->encryption->encrypt($file);

move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file);

$json['success'] = $this->language->get('text_upload');
}

$this->response->setOutput(json_encode($json));
}
}
?>

 

только копию файла перед этим сделайте на всякий случай

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

попробуйте приведенный код заменить на штатный от ocstore 1.5.5.1.2

public function upload() {

$this->language->load('product/product');

$json = array();

if (!empty($this->request->files['file']['name'])) {

$filename = basename(preg_replace('/[^a-zA-Z0-9\.\-\s+]/', '', html_entity_decode($this->request->files['file']['name'], ENT_QUOTES, 'UTF-8')));

if ((utf8_strlen($filename) < 3) || (utf8_strlen($filename) > 64)) {

$json['error'] = $this->language->get('error_filename');

}

// Allowed file extension types

$allowed = array();

$filetypes = explode("\n", $this->config->get('config_file_extension_allowed'));

foreach ($filetypes as $filetype) {

$allowed[] = trim($filetype);

}

if (!in_array(substr(strrchr($filename, '.'), 1), $allowed)) {

$json['error'] = $this->language->get('error_filetype');

}

// Allowed file mime types

$allowed = array();

$filetypes = explode("\n", $this->config->get('config_file_mime_allowed'));

foreach ($filetypes as $filetype) {

$allowed[] = trim($filetype);

}

if (!in_array($this->request->files['file']['type'], $allowed)) {

$json['error'] = $this->language->get('error_filetype');

}

if ($this->request->files['file']['error'] != UPLOAD_ERR_OK) {

$json['error'] = $this->language->get('error_upload_' . $this->request->files['file']['error']);

}

} else {

$json['error'] = $this->language->get('error_upload');

}

if (!$json && is_uploaded_file($this->request->files['file']['tmp_name']) && file_exists($this->request->files['file']['tmp_name'])) {

$file = basename($filename) . '.' . md5(mt_rand());

// Hide the uploaded file name so people can not link to it directly.

$json['file'] = $this->encryption->encrypt($file);

move_uploaded_file($this->request->files['file']['tmp_name'], DIR_DOWNLOAD . $file);

$json['success'] = $this->language->get('text_upload');

}

$this->response->setOutput(json_encode($json));

}

}

?>

 

только копию файла перед этим сделайте на всякий случай

Спасибо,но этот вариант мне не подходит.

Все видоизменения которые у меня произведены мне нужны.

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


Что мешает создать копию оригинала файла, проверить, потом восстановить копию?

Раз в данный момент вообще никак не работает

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

Что мешает создать копию оригинала файла, проверить, потом восстановить копию?

Раз в данный момент вообще никак не работает

И вот итог: http://lograr.ru/tipografia/reklamnaaya-poligrafiya/bukleti.html

Всё в ошибках.

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


А вы верно код вставили? - именно приведенный вами заменить на приведенный мной (специально не стал только код функции давать, а добавил с окончаниями как в вашем, чтоб не было путаницы)

 

Потому что ошибки, которые у вас появились, не имеют отношения к приведенному коду:

Notice: Undefined variable: startdate in /home/k/kabankitru/lograr/public_html/vqmod/vqcache/vq2-catalog_view_theme_BigOne_template_product_product.tpl on line 22
Notice: Undefined variable: quantity in /home/k/kabankitru/lograr/public_html/vqmod/vqcache/vq2-catalog_view_theme_BigOne_template_product_product.tpl on line 55
Notice: Undefined variable: quantity in /home/k/kabankitru/lograr/public_html/vqmod/vqcache/vq2-catalog_view_theme_BigOne_template_product_product.tpl on line 55
Notice: Undefined variable: quantity in /home/k/kabankitru/lograr/public_html/vqmod/vqcache/vq2-catalog_view_theme_BigOne_template_product_product.tpl on line 312
Notice: Undefined variable: quantity in /home/k/kabankitru/lograr/public_html/vqmod/vqcache/vq2-catalog_view_theme_BigOne_template_product_product.tpl on line 313style="display:none" name="quantity" size="2" value="1" />

Зато - обратите внимание - файлы стали загружаться

 

Попробуйте переместить куда-нибудь файл vq2-catalog_view_theme_BigOne_template_product_product.tpl из папки vqmod/vqcache и перегрузите страницу товара в браузере по F5

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

А вы верно код вставили? - именно приведенный вами заменить на приведенный мной (специально не стал только код функции давать, а добавил с окончаниями как в вашем, чтоб не было путаницы)

 

Потому что ошибки, которые у вас появились, не имеют отношения к приведенному коду:

Notice: Undefined variable: startdate in /home/k/kabankitru/lograr/public_html/vqmod/vqcache/vq2-catalog_view_theme_BigOne_template_product_product.tpl on line 22
Notice: Undefined variable: quantity in /home/k/kabankitru/lograr/public_html/vqmod/vqcache/vq2-catalog_view_theme_BigOne_template_product_product.tpl on line 55
Notice: Undefined variable: quantity in /home/k/kabankitru/lograr/public_html/vqmod/vqcache/vq2-catalog_view_theme_BigOne_template_product_product.tpl on line 55
Notice: Undefined variable: quantity in /home/k/kabankitru/lograr/public_html/vqmod/vqcache/vq2-catalog_view_theme_BigOne_template_product_product.tpl on line 312
Notice: Undefined variable: quantity in /home/k/kabankitru/lograr/public_html/vqmod/vqcache/vq2-catalog_view_theme_BigOne_template_product_product.tpl on line 313style="display:none" name="quantity" size="2" value="1" />

Зато - обратите внимание - файлы стали загружаться

 

Попробуйте переместить куда-нибудь файл vq2-catalog_view_theme_BigOne_template_product_product.tpl из папки vqmod/vqcache и перегрузите страницу товара в браузере по F5

Спасибо,теперь всё работает.

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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