首页 > 解决方案 > 允许用户导入文件的页面不起作用 - PHP

问题描述

我正在尝试开发一个页面,让用户导入 JSON 文件并将他重定向到显示文件信息的主页。我做了这个页面,它与数据库没有连接,页面保持静态,而且我得到这个警告: Invalid argument provided for foreach() in C:\xampp\htdocs\stsbootstrap\import.php on line 36 注意:未定义的索引:第 32 行 C:\xampp\htdocs\stsbootstrap\import.php 中的 samplefile.json 注意:第 33 行 C:\xampp\htdocs\stsbootstrap\import.php 中的未定义索引:samplefile.json 我有点迷路了关于我第一次做这件事时我做错了什么,我正在处理 PHP 文档。有什么想法吗?

$serverName = "localhost";
$username ="";
$password="";
$dbName = "sts";
try {
$conn = new PDO("mysql:host=$serverName; dbname=$dbName", $username, $password);
}
catch (PDOException $e){
    $errorInfo= $e->errorInfo;
    echo "Database error " . $errorinfo[1];
}

//importing file    
 if(isset($_POST['buttonImport'])) {
copy($_FILES['jsonFile']['tmp_name'], 'uploads/'.$_FILES['jsonFile']['samplefile.json']);
$data = file_get_contents('uploads/'.$_FILES['jsonFile']['samplefile.json']);
$ticket = json_decode($data);

foreach ($ticket as $ticket) {
    $stmt=('INSERT INTO
    tickets(subject, description, team, status) VALUES(:subject, :description, :team, :status)');
    $stmt = $conn->prepare($stmt);
    $stmt->bindValue('subject', $ticket->subject);
    $stmt->bindValue('description', $ticket->description);
    $stmt->bindValue('team', $ticket->team);
    $stmt->bindValue('status', $ticket->status);
    $stmt->execute();
    echo "Your upload was successful!"; 
    header ('home.php');
    
}
 }
    ?>

 <body>
        <form method="post" enctype="multipart/form-data" style="padding: 0 16px;">
                 Please upload a JSON file here:</br><input type="file" class="btn btn-light" 
                name="jsonFile">
            <br>
            </br>

        <div class="form-group row">
        <div class="offset-sm-2 col-sm-10">
        <input type="submit" value="Import" name="buttonImport" class="btn btn-primary"/>
        </div>
      </div>
        
        </form>
    </body>

Here's my database too: 

数据库表

标签: phphtmljsonimport

解决方案


推荐阅读