簡體   English   中英

AJAX-如何從輸入文件中獲取數據以追加formdata?

[英]AJAX - How to get data from input file to append formdata?

您好,我想使用純JavaScript Ajax(無jquery)追加formdata,但是我不知道如何從輸入文件類型獲取數據

function handleForm(e) 
{
    e.preventDefault();
    var username = document.getElementById('username').value;
    var email = document.getElementById('email').value;

    var data = new FormData();

    data.append('username', username); 
    data.append('email', email);
    data.append('file', ?????);  ////// How to get data from input file


    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'test2.php', true);

    xhr.onload = function(e) {
        if(this.status == 200) {
            console.log(e.currentTarget.responseText);  
            alert(e.currentTarget.responseText + ' items uploaded.');

        }
    }

    xhr.send(data);
}

...

    Username: <input type="text" name="username" id="username"><br/>
    Email: <input type="text" name="email" id="email"><br/>
    Image: <input type="file" name="file" id="myimg"><br/>

    <input type="submit">
</form>

<input type="file" /> HTML元素具有files屬性(類型FileList )。
檢查長度是否已選擇文件,如果已選擇,則將文件添加到FormData對象

var fileInput = document.getElementById("myimg");
if (fileInput.files.length > 0) {
    data.append("file", fileInput.files[0]);
}

有關如何使用FormData對象的更多示例,請檢查以下鏈接: https : //developer.mozilla.org/en-US/docs/Web/API/FormData/Using_FormData_Objects

document.getElementById("file_input_id").files[0]

嘗試

<input type="file" id="fileinput" />

獲取文件..您可以使用

var myFile = $('#fileinput').prop('files')[0];

暫無
暫無

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

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