php - 在Wordpress中,如何编写带有文件上传选项的自定义表单并将记录保存在MySql中?

标签 php mysql wordpress

到目前为止,我已经能够制作一个自定义表单,成功输入后将值保存到名为“form_entry”的 MySql 表中

下面是表单的代码:

<form method="post" class="container">
<div class="row">
<div class="col-md-6 mb-3">
<label>Name</label>
<input type="text" name="myname" class="form-control" placeholder="Name" value="John Doe" required>
</div>
<div class="col-md-3 mb-3">
<label>State</label>
<input type="text" name="statename" class="form-control" placeholder="State" required>
</div>
</div>
<button class="btn btn-primary" type="submit" name="BtnSubmit" value="submit">Submit form</button>
</form>

我在模板文件夹下的functions.php中插入了一些代码,如下所示:

if(isset($_POST['BtnSubmit'])) {
    global $wpdb;
    $data_array = array(
                        'myname' => $_POST['myname'],
                        'statename'  => $_POST['statename'],

                        );

    $table_name = 'form_entry';
    $rowResult = $wpdb ->insert($table_name, $data_array, $format=NULL);

    if($rowResult == 1) {
        echo 'Success';
    }
else {
    echo ' Error in my pant';
}   
die;
}

这工作正常。但我想在表单中添加文件上传选项并将上传的文件位置保存到MySql。请帮忙。

最佳答案

您必须在 html 表单中添加一个字段。并将参数添加到表单中。

<form method="post" class="container" enctype="multipart/form-data">

<div class="row">
    <div class="col-md-6 mb-3">
        <label>File</label>
        <input type="file" name="myfile" class="form-control" required/>
    </div>
</div>

提交后,您必须将上传的文件保存在特定位置并将该文件保存到您的数据库中。

if (isset($_POST['BtnSubmit'])) {
    $target = 'uploads/' . basename($_FILES['myfile']['name']);

    if(move_uploaded_file($_FILES['myfile']['tmp_name'], $target)) {
        $fp = fopen($target, "r");
    }
    global $wpdb;
    $data_array = array(
                    'myname' => $_POST['myname'],
                    'statename'  => $_POST['statename'],
                    'filename' => $target
                 );
}

我想这对你有用!欢迎询问我。

关于php - 在Wordpress中,如何编写带有文件上传选项的自定义表单并将记录保存在MySql中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48050409/

相关文章:

PHP 或 shell : How to randomize a list without back to back repeats?

mysql - 如何运行一组选择查询?

php - 在一个查询中连接/查看 Mysql 三个表

mysql - 如何求和上个月的值?

wordpress - 是否可以使用 Go 将现有的 CRD 添加到自定义 Kubernetes 运算符中?

php - 如何返回 Guzzle JSON 响应

php - 来自 php mysql 的数组值的总和

php - 为什么 "GET"覆盖 "SESSION"

css - 以正确的方式在 WordPress 中排队 IE 条件样式表

php - #!在 url 中使网页行为奇怪