使用在互联网上找到的不同代码段,我将以下代码汇总在一起:
HTML:
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="csv" value="" />
<input type="submit" name="submit" value="Save" /></form>
PHP:
<?php
$file = fopen($csv, 'r');
echo "<table>" ;
while (($line = fgetcsv($file)) !== FALSE) {
//$line is an array of the csv elements
echo "<tr><td>";
echo $line[0];
echo "</td><td>";
echo $line[2];
echo "</td><td>";
echo $line[5] * 1000;
echo "</td></tr>";
}
fclose($file) . " ";
echo "</table>";
?>
这不起作用,但是如果我替换
fopen('MatchResults-12789503873441817.csv'
与
fopen('<name of ulpaded file>.csv'
效果很好。
关于如何解决此问题的任何建议?
编辑: 已更改
$file = fopen('csv', 'r');
到
$file = fopen($csv, 'r');
答案 0 :(得分:1)
如
那样使用post
的方法时
<form action="upload.php" method="post" enctype="multipart/form-data">
// -----------------------^^^^^^^^^^^^^
数据将以名为$_POST
的数组发送到PHP脚本
如果输入字段如
那样被称为csv
<input type="text" name="csv" value="" />
// ----------------^^^^^^^^^^
然后在$_POST
中应该有一个叫做csv
的事件
$file = fopen($_POST['csv'], 'r');
尽管您应该在使用数据之前检查数据是否已实际发送
if ( isset($_POST['csv'] ) {
$file = fopen($_POST['csv'], 'r');
// other code
}