如何将csv文件从任何目录上传到数据库

时间:2017-03-12 03:46:56

标签: php html html5

我正在将文件中的数据添加到我的数据库中。目前,文件的位置仅限于目录D:/内的位置。我希望能够支持从多个目录添加文件。

<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "stdprt";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
$filename = "d:/" . $_POST['fname'];
$handle = fopen($filename, "r");
while (($data = fgetcsv($handle)) !== FALSE) {
    $num = count($data);
    $row;
    $sql = "INSERT into marks(regno,semister,subcode,subname,internals,externals,credits)values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]')";
    //echo "INSERT into marks(regno,semister,subcode,subname,internals,externals,credits)values('$data[0]','$data[1]','$data[2]','$data[3]','$data[4]','$data[5]','$data[6]')";
    if ($conn->query($sql) === TRUE) {
        // echo "New record created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
    echo "<br>";
}
?>
<h2>Uploaded Successfully....</h2>
<a href="admin.php">back</a>

1 个答案:

答案 0 :(得分:0)

如果您想在另一个驱动器中选择一个文件,可以在代码中修改此行并在开始时更改目录。

$filename="d:/".$_POST['fname'];

因此,例如,如果您想将目录更改为驱动器F,则会如此:

$filename="f:/".$_POST['fname'];

如果您希望能够在请求中指定自定义目录,则可以通过传递fname的方式传递它。比如说,您在名为cust_dir的密钥中传递了自定义目录,您可以将其添加为目录,如此。

if($_POST['cust_dir']{
    $filename=$_POST['cust_dir'].$_POST['fname'];
} else {
    $filename="d:/".$_POST['fname'];
}

上面的代码将使用您在$ _POST变量中传递的自定义目录路径(如果您传递了该路径)。如果您未通过cust_dir,则默认为目录d:/