簡體   English   中英

如何將 POST 參數從 javascript 發送到 php

[英]How to send POST parameters from javascript to php

我在將 POST 參數從 javascript 發送到 php 頁面時遇到問題。 所有腳本都可以正常工作,但我需要 POST 參數以進行進一步操作。 在 php $_POST 數組中總是空白。 我究竟做錯了什么? 到目前為止,這是我的代碼:

HTML:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
    <div class="container" style="width:700px;">
        <label>Select Image</label>
        <input type="file" name="file" id="file" />
        <br /><br />
        <span id="uploaded_image"></span>
    </div>

Javascript:

$(document).ready(function(){
$(document).on('change', '#file', function(){
    var name = document.getElementById("file").files[0].name;
    var form_data = new FormData();
    var ext = name.split('.').pop().toLowerCase();

    if(jQuery.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
        alert("Invalid Image File");
    }
    var oFReader = new FileReader();
    oFReader.readAsDataURL(document.getElementById("file").files[0]);
    var f = document.getElementById("file").files[0];
    var fsize = f.size||f.fileSize;
    if(fsize > 2000000) {
        alert("Image File Size is very big");
    }
    else {
        form_data.append("file", f);
        $.ajax({
            url:"upload.php",
            method:"POST",
            data: form_data,
            contentType: false,
            cache: false,
            processData: false, 
            beforeSend:function(){
                $('#uploaded_image').html("<label class='text-success'>Image Uploading...</label>");
            },
            success:function(data) {
                $('#uploaded_image').html(data);
            }
        });
    }
});
});

和 PHP:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (isset($_FILES['file'])) {
    $errors = [];
    $extensions = ['jpg', 'jpeg', 'png', 'gif', 'pdf'];
    echo '$_FILES array: ';
    print_r(array_values($_FILES));
    echo '<br>';
    echo '$_POST array: ';
    print_r(array_values($_POST));
    echo '<br>';
}
// rest of code
}

請在下面保存為文件:http server (eg xampp) 文件夾中的upload.php 然后在瀏覽器上打開

<html> 
<body>

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    if (isset($_FILES['file'])) {
        $errors = [];
        $extensions = ['jpg', 'jpeg', 'png', 'gif', 'pdf'];
        echo '$_FILES array: ';
        print_r(array_values($_FILES));
        echo '<br>';
        echo '$_POST array: ';
        print_r(array_values($_POST));
        echo '<br>';
    }
    // rest of code
    }
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script>
    $(document).ready(function(){
    $(document).on('change', '#file', function(){
    var name = document.getElementById("file").files[0].name;
    var form_data = new FormData();
    var ext = name.split('.').pop().toLowerCase();

    if(jQuery.inArray(ext, ['gif','png','jpg','jpeg']) == -1) {
        alert("Invalid Image File");
    }
    var oFReader = new FileReader();
    oFReader.readAsDataURL(document.getElementById("file").files[0]);
    var f = document.getElementById("file").files[0];
    var fsize = f.size||f.fileSize;
    if(fsize > 2000000) {
        alert("Image File Size is very big");
    }
    else {
        form_data.append("file", f);
        $.ajax({
            url:"./upload.php",
            method:"POST",
            data: form_data,
            contentType: false,
            cache: false,
            processData: false, 
            beforeSend:function(){
                $('#uploaded_image').html("<label class='text-success'>Image Uploading...</label>");
            },
            success:function(data) {
                $('#uploaded_image').html(data);
            }
        });
    }
});
});

</script>

    <div class="container" style="width:700px;">
        <label>Select Image</label>
        <input type="file" name="file" id="file" />
        <br /><br />
        <span id="uploaded_image"></span>
    </div>

</body>
</html>

它提供了一些所需的細節

Select Image 

$_FILES array: Array ( [0] => Array ( [name] => zc.jpg [type] => image/jpeg [tmp_name] => C:\xampp\tmp\php9437.tmp [error] => 0 [size] => 17436 ) )
$_POST array: Array ( )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM