更新表单上的 PHP 文件上传

标签 php mysql file-upload

我创建了一个编辑表单,如下所示。我想编辑上传的文件,它应该在 mysql 数据库中更新。插入记录文件时正在上传到数据库中,但在编辑记录时不会上传到数据库中。剩余字段正在更新,但文件上传没有发生。

谁能帮我解决这个问题?

提前致谢。

Edit.php

<?php
// include db connection.
    include 'dbconn.php';
    // If the form was submitted/posted, update the record.
    if($_POST)
{
    $path = '';
    $folder = "Folder/";
if (is_uploaded_file($_FILES['filename']['tmp_name']))
{   
if (move_uploaded_file($_FILES['filename']['tmp_name'], $folder.$_FILES['filename']['name'])) 
    {
    $path = $folder . $_FILES['filename']['name'];
    } 
    else 
    {
    $path = '';
    };
} 
else 
{
     $path = '';
};

        // write query.
        $sql = "UPDATE main SET category = ?, sd = ?, fd = ?, assignto = ?, reviewed = ?, upload = ? WHERE srn = ?";
        $stmt = $mysqli->prepare($sql);
        // Binding params.
        $stmt->bind_param('sssssbi',$_POST['category'],$_POST['sd'],$_POST['fd'],$_POST['assignto'],$_POST['reviewed'],$_POST['path'],$_POST['srn']);
        // Execute the update statement.
        if($stmt->execute())
        { ?>
        <script language="javascript">
        alert("Task updated successfully");
        top.location.href = "view.php"; // Page redirection.
        </script>
            // Close the prepared statement.
        <?php   $stmt->close();
}
        else 
        {
    die("Unable to update the task....");
        }
    }
$sql = "SELECT srn, client, type, fy, category, sd, fd, assignto, edoc, reviewed, upload FROM main WHERE srn = \"" . $mysqli->real_escape_string($_GET['srn']) . "\" LIMIT 0,1";
// Execute the sql query.
$result = $mysqli->query($sql);
// Get the result.
$row = $result->fetch_assoc();
// php's extract() makes $row['client'] to $client automatically.
extract($row);
// Disconnect from db.
$result->free();
$mysqli->close();
?>
<form action="Edit.php?srn=<?php echo $srn; ?>" method="POST" enctype="multipart/form-data" novalidate>
            <span>File upload</span>
<input type="hidden"name="MAX_FILE_SIZE" value="2000">
        <input name ="filename" type="file"/>

<button id='send' type='submit'>Update</button>
</form>

dbconn.php

<?php
// Set connection variables.
$host = "localhost";
$user = "root";
$pwd  = "root";
$db   = "eservice";
// Connect to mysql server
$mysqli = new mysqli($host,$user,$pwd,$db);
/* Check if any error occured */
if (mysqli_connect_errno()) 
{
  echo "Failed to connect to mysql : " . mysqli_connect_error();
   exit;
}
?>

最佳答案

将文件上传代码移到 if($_POST) 代码块中。

在运行任何代码之前,您没有检查 $_FILES 数组是否存在。

关于更新表单上的 PHP 文件上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29071472/

相关文章:

php - 不使用 While 循环从数据库中获取单元格信息

php - 如何获取上传到 FTP 服务器的文件的 HTTP URL

php - wordpress中的文件写入问题

php - 执行 while 循环以从数据库中获取记录时出错

php - 我可以在 PHP 函数中添加 javascript 警报吗?如果是,如何?

mysql - 无法使用 LOAD DATA 将时间戳加载到 MySQL 表中

php - Mysql 在 2 个表上的内连接不起作用

java - Spring 启动 : ClassNotFoundException when configuring maxUploadSize of CommonMultipartResolver

java - 文件是否附加在文件字段中?

python - Django 文件上传 - fileno 错误