【问题标题】:POST file data, text data and variable data via Ajax to PHP file for Upload通过 Ajax POST 文件数据、文本数据和变量数据到 PHP 文件进行上传
【发布时间】:2018-01-06 02:28:44
【问题描述】:

我有三种类型的输入,它们是文件输入、文本输入和变量。我想通过使用 Ajax JSON 将数据发送到 PHP 文件来上传这些输入。我还想知道如何在 PHP 文件中捕获这些数据。

我正在使用没有表单语法的 HTML 代码。变量数据名称为 JQuery 代码中的 val1。

HTML 代码:

<div class="container" id="post">
    <textarea id="posttext" autocomplete="off"></textarea>
    <input type="file" name="file" id="file" multiple accept=".mp4, .mov, .m4v, .MPEG-4, .gif, .jpg, .png"/>
    <button type="button" id="submitpost">Submit</button>
</div>

JQuery 代码:

$(document).on("click", "#submitpost", function(){
    var val1 = "Some Datas";

        $.ajax({
        url: post.php,
        type: 'POST',
        data: VALUES,
        async: false,
        success: function (data) {
            alert(data)
        },
        cache: false,
        contentType: false,
        processData: false
        });
});

PHP 代码:

<?php
if (!isset($_POST['VALUES']) && !empty($_POST['VALUES'])) {
        $params = $_POST['VALUES'];

}
?>

如何获取 PHP 中的每个值以上传文件并将文本和变量数据插入数据库。

【问题讨论】:

    标签: php jquery ajax


    【解决方案1】:

    使用此代码:

    HTML:

    <div class="container" id="post">
      <form enctype="multipart/form-data" method="POST" id="myform">
        <textarea id="posttext" name="posttext" autocomplete="off"></textarea>
        <input type="file" name="file" id="file" multiple accept=".mp4, .mov, .m4v, .MPEG-4, .gif, .jpg, .png"/>
        <button type="submit" name="submitpost" id="submitpost">Submit</button>
       </form>
    </div>
    

    Jquery:

    $(document).on("click", "#submitpost", function(e){
        $("form#myform").submit();
    });
    $("form#myform").on('submit', function(e){
        e.preventDefault();
        var val1 = "Some Data";
        var file = this.files[0];
        var form = new FormData();
        form.append('file', file);
        form.append('val1', val1);
        form.append('posttext', $('#posttext').val());
        $.ajax({
            url : "post.php",
            type: "POST",
            cache: false,
            async: false,
            contentType: false,
            processData: false,
            data : form,
            success: function(response){
                alert(response);
            }
        });
    });
    

    PHP 代码:

    <?php
    if (isset($_POST) && !empty($_POST)) {
        print_r($_POST);
        print_r($_FILES);
    }
    ?>
    

    【讨论】:

    • 变量数据在哪里(val1)\
    • ajax 正在工作我将每个“文本”代码放在 php 文件中,我得到文本响应但没有值
    • 我得到了这样的响应 Array ( [file] => undefined [val1] => Some Data [posttext] => jjj ) Array ( ) but file is undefined
    • 我使用 var file = this.files;像这样。我得到了 var file = this.files[0]; 的错误
    猜你喜欢
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 2011-05-23
    • 1970-01-01
    • 1970-01-01
    • 2014-08-29
    • 2015-09-15
    • 1970-01-01
    相关资源
    最近更新 更多