public function uploadProducts($filename) { $result = ['status' => '', 'message' => '', 'results' => []]; $filepath = 'temp/' . $filename; if (file_exists($filepath)) { if (($file = file_get_contents($filepath)) !== false) { $extension = pathinfo($filepath, PATHINFO_EXTENSION); switch ($extension) { case 'json': $products = json_decode($file); $model = new Model_Products(); for ($i = 0; $i < count($products); $i++) { $result['results'][$i] = $model->addProduct((array) $products[$i]); } break; case 'xml': $xml = simplexml_load_file($filepath); $model = new Model_Products(); // Небольшая валидация xml файла if ($xml && isset($xml->products) && isset($xml->products->product)) { $products = $xml->products; foreach ($products->product as $product) { $result['results'][] = $model->addProduct((array) $product); } } else { $result['status'] = 'error'; $result['message'] = 'Неправильный xml файл!'; return $result; } break; default: $result['status'] = 'error'; $result['message'] = 'Неверное расширение файла!'; return $result; break; } // Удаляем файл после того, как он загружен unlink($filepath); $result['status'] = 'success'; $result['message'] = 'Товары успешно добавлены'; } else { $result['status'] = 'error'; $result['message'] = 'Не удалось открыть файл=('; } } else { $result['status'] = 'error'; $result['message'] = 'Файла почему-то нет=('; } return $result; }