簡體   English   中英

通過ajax POST上傳圖像而不使用HTML表單

[英]Image upload via ajax POST without using HTML form

我試圖通過POST方法將一些數據發送到PHP文件而不使用HTML格式。 這是我的代碼。 它為什么不做任何事情?

<input type="file" name="fileToUpload" id="fileToUpload">
<input type="hidden" value="<?php echo $row['Gallery_Id']; ?>" name="gid" id="gid">
<input type="hidden" value="User" name="user" id="user">
<button onclick="myFormData()">Upload Image</button>
<script>
            $('#fileToUpload').on('change', function() {
            var myFormData = new FormData();
            var file = document.getElementById('fileToUpload').value;
            var gid = document.getElementById('gid').value;
            var user = document.getElementById('user').value;
            myFormData.append('file', file);
            myFormData.append('gid', gid);
            myFormData.append('user', user);
            });

            $.ajax({
                url: 'imgupload.php',
                type: 'POST',
                processData: false, // important
                contentType: false, // important
                dataType : 'json',
                data: myFormData
            });

            </script>

imgupload.php我得到了這樣的POST數據

$gid = $_POST['gid'];
$user = $_POST['user'];

當我使用HTML表單方法時,它工作。 這有什么不對?

FormData.append()接受鍵值對,所以這是錯誤的:

myFormData.append(file,gid,user);

你需要這樣的東西:

myFormData.append('file', file);
myFormData.append('gid', gid);
myFormData.append('user', user);

從中您需要將此代碼放入事件處理程序中,以便在需要時觸發它。

例如:

$('#fileToUpload').on('change', function() {
  // your javascript code
});

你應該把它放在document.ready塊中。

暫無
暫無

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

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