我目前正在一个项目上,该项目的目标是能够拥有一个网页,您可以在该网页上发布/提交一般的xlsx文件和excel文件,然后使用该文件将其写入数据库而不修改文件本身,只是使用它来写入数据库。 我还没有开始那部分,但是我也不是从零开始。现在,我的网站包括2个页面(技术上是3个,但实际上是2个),您到达的“首页”页面只是一个经典的html主页,其中的文字向您介绍了该网站的真正目的< / p>
是的,我尝试查看教程和内容,但是它们都是过时的(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>
我还没有任何错误消息,我只是想生产某种技术上也不是从头开始的东西,但是仍然...