PHP:如何在不将其保存到服务器的情况下读取.XLS文件的内容?

时间:2009-07-09 18:21:58

标签: php file upload

我正在使用PHP开发数据库程序,以跟踪我们在工作场所管理的产品。

对于这个项目,我需要能够选择包含新产品数据的.XLS文件。 新数据包含以下字段:

键入CHAR(3),   线CHAR(2),   号码INT,   测量INT,   注释VARCHAR(255),   变化CHAR(1),即('Y'||'N')

这些文件是在Excel或Google文档中创建的;我找到了一个wonderful excel_reader,它允许我从这个文件中提取值。

由于这是一个常规的动作,因为新产品的创建,所以我不希望文件存储在我的服务器目录中(过了一会儿会有几十个!)。 我宁愿简单地读取文件,因为我正在编写的导入脚本将文件的数据传输到数组中。

我真正想要的是让用户通过HTML表单选择文件的位置(在他们的本地计算机上),然后让脚本将该文件的内容保存到MySQL数据库,而不必将文件发送到服务器。

我非常感谢你能给我的任何建议,我甚至不确定我的计划是处理这种情况的有效方法。

4 个答案:

答案 0 :(得分:7)

必须至少暂时存储它。在您拥有所需文件后(可能是在使用move_uploaded_file将其移出临时目录后)删除文件到您将从中读取文件的文件夹,然后使用unlink将其删除。 / p>

最后一点,我有点担心立即删除上传的文件。如果在解析文件并将数据存储在数据库中时脚本出现问题怎么办?为了安全起见,有一个定期删除文件的cron作业可能是个好主意,而不是立即删除它们。

答案 1 :(得分:2)

由于您的PHP脚本在服务器上运行,因此必须将Excel文件保存到服务器以供读取。一旦你读完文件并将其存储在数据库中,就删除它。

答案 2 :(得分:0)

我找到了问题here的答案。这是一个很好的使用PHP上传,移动,读取和删除文件的教程。

感谢所有贡献者。

答案 3 :(得分:0)

我正在努力做同样的事情(尽管对于xlsx)。
解决方案是使用$ _FILES ['file'] ['tmp_name'],
文件是输入名称。

此致:)