【发布时间】:2012-03-31 03:46:34
【问题描述】:
我已经在这个问题上工作了几个小时,并且使用了来自网络和堆栈溢出的许多资源,但我似乎无法克服最后一件事。我正在尝试获取 csv 文件的内容并将它们存储在一个数组中,并通过会话将结果打印在另一个页面上。
index.php(显示上传文件的表格)
<html>
<form action="http://mysite.org/~me/upload.php" method="POST" enctype="multipart/form-data">
<input type="file" name="file"><br />
<input type="submit" value="Now upload it!">
</form>
</html>
upload.php(如果是 CSV,输出文件大小,print_r 应该包含所有数据的数组)
<?php
session_start();
if (($_FILES["file"]["type"] == "application/vnd.ms-excel"))
{
if ($_FILES["file"]["error"] > 0)
{
echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
}
else
{
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
$file = fopen($_FILES["file"]["tmp_name"], 'r');
while (($line = fgetcsv($file)) !== FALSE) {
//$line is an array of the csv elements
print_r($line);
$_SESSION['line']=$line;
}
fclose($file);
}
}
else
{
echo "Invalid file";
}
echo "<a href='http://mysite.org/~me/yes.php'>Yes</a>";
?>
是的.php
<?php
session_start();
$data = $_SESSION['line'];
print_r($data);
?>
上传页面中的 print_r 应该与 yes 页面中的 print_r 相同,但事实并非如此。它只显示最后一个数组。我不明白我将如何解决这个问题。
附带说明:我只使用 php 编程大约 2 周,所以请足够周到地解释你的答案。这真的很有帮助!谢谢=)
【问题讨论】:
标签: php html arrays file-upload csv