更新表单上的PHP文件上载

时间:2015-03-16 07:19:51

标签: php mysql file-upload

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

有人可以帮我解决这个问题吗?

提前致谢。

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;
}
?>

1 个答案:

答案 0 :(得分:0)

移动文件上传代码进入if($ _ POST)代码块。

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