我有一个.xlsx文件和一个带有的html文件。我只需要上传它并将其发送到php文件(使用js或任何其他方式)即可。
如果我直接将其加载到php文件中,则该php文件需要一个.xlsx文件(由于这个原因,我不解析.xlsx。)可以正常工作,但我需要通过用户界面上传,在这种情况下是html视图。
致谢。
更新:
.html现在看起来像这样:
<div class="MainContainerPrice">
<form action="php/excel_to_mysql.php" method="POST">
<input type="file" name="excel" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/>
<input type="submit">
</form>
</div>
.php看起来像这样:
<?php
include 'simplexlsx.class.php';
$file = $_FILES['excel'];
$xlsx = new SimpleXLSX('pricesExcel.xlsx'); //the file directly uploaded that I need to send from html.
...
?>
但是现在我遇到下一个错误:
未定义索引:第2行中... \ excel_to_mysql.php中的excel。
为什么不识别名字?
答案 0 :(得分:1)
您需要在html和PHP部分进行一些调整
<div class="MainContainerPrice">
<form action="php/excel_to_mysql.php" method="POST" enctype="multipart/form-data">
<input type="file" name="excel" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/>
<input type="submit">
</form>
</div>
请注意enctype="multipart/form-data"
。实际发送文件是必需的。
PHP文件中的
<?php
include 'simplexlsx.class.php';
$file = $_FILES['excel']['tmp_name'];
$xlsx = new SimpleXLSX($file); //the file directly uploaded that I need to send from html.
...
?>
$_FILES['excel']['tmp_name']
包含上载文件的完整路径,请注意,您不能依赖扩展名为'.xlsx'的文件,因为该文件出于安全目的会使用随机名称。
我强烈建议您使用临时目录中的文件,并在使用后将其删除。
如果SimpleXLSX
类需要使用'.xlsx'扩展名才能正常工作,则可以尝试将其添加到临时文件中
rename($_FILES['excel']['tmp_name'],$_FILES['excel']['tmp_name'].'.xlsx');