В настоящее время я работаю над проектом, целью которого является создание веб-страницы, на которой можно публиковать / отправлять файлы xlsx и файлы Excel в целом, а затем использовать этот файл для записи в базу данных без изменения файла.сам, просто используя его для записи в базу данных.Я еще не начал эту часть, но я тоже не начинаю с нуля.На данный момент мой веб-сайт состоит из 2 (технически 3, но фактически 2) страниц, «домашней» страницы, на которую вы заходите, это просто классическая html главная страница с текстом, который знакомит вас с истинной целью сайта
Да, я пытался взглянуть на учебники и прочее, но все они были устаревшими (2015 или даже старше) и поэтому основывались на методах Symfony, которые больше не поддерживаются в новейшей версии.Моя версия PHP 7.3.6, моя версия symfony 4.2.8 и версия моего композитора 1.8.6
Мой контроллер:
<?php
// src/Controller/DefaultController.php
// src/Controller/Readfile.php
namespace App\Controller;
//require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Reader\Csv;
use PhpOffice\PhpSpreadsheet\Reader\Xlsx;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Readfile;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Response;
class DefaultController extends AbstractController
{
public function index()
{
return $this->render('Advert/index.html.twig');
}
public function upload() {
return $this->render('Advert/form.html.twig');
}
public function submit() {
$file_mimes = array('text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel', 'text/plain', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
if(isset($_FILES['file']['name']) && in_array($_FILES['file']['type'], $file_mimes)) {
$arr_file = explode('.', $_FILES['file']['name']);
$extension = end($arr_file);
if('csv' == $extension) {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Csv();
} else {
$reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
}
$spreadsheet = $reader->load($_FILES['file']['tmp_name']);
$sheetData = $spreadsheet->getActiveSheet()->toArray();
print_r($sheetData);
}
}
}
Два шаблона моей домашней страницы:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Bienvenue !</title>
<link rel="stylesheet" href="https://bootswatch.com/4/cyborg/bootstrap.min.css">
</head>
<body>
<h1>Bienvenue !</h1>
<p>
Ce site aura pour fonction la gestion de fichier.
Pour publier un fichier, cliquez sur le bouton si-dessous.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
<a href="/upload_file"> <input type="button" value="Aller à la page de publication de document---->"> </a>
</body>
</html>
Шаблон страницы, используемой для загрузки файлов:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Bienvenue !</title>
<link rel="stylesheet" href="https://bootswatch.com/4/cyborg/bootstrap.min.css">
</head>
<form method="post" enctype="multipart/form-data" action="/read_file">
<div class="form-group">
<label for="exampleInputFile">Upload de fichier</label>
<input type="file" name="file" class="form-control" id="exampleInputFile">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
<p>
Pour revenir à la page d'acceuil:
</p>
<a href="/home"> <input type="button" value="Retour à la page d'acceuil"> </a>
</form>
У меня пока нет сообщений об ошибках, я просто пытаюсь создать что-то, что технически отсутствуетну, но все же ...