2014-04-14 48 views
1

我想通過JavaScript(非框架)上傳圖片。有沒有人有這個基本的例子?Javascript圖片上傳(非框架)

我收到此錯誤信息:

警告:丟失的multipart/form-data發佈的數據邊界在未知在線0陣列()

這裏是我的工作至今。

<form action="" method="" enctype="" id="uploadImage"> 
<input type="file" name="image1" id="image1" value="" > 
<input type="button" id="submit_button" data-data_enctype="multipart/form-data"  data-form_name="uploadImage" data-url="/gallery/images/upload/" data-change_div="getForm" value="Upload" onclick="image(this.id, form.id)"/> 
</form> 

var xmlhttp; 
if (window.XMLHttpRequest) 
{ 
    xmlhttp = new XMLHttpRequest(); 
} 
else 
{ 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} 

var datVar = document.getElementById(id); 
var url = datVar.dataset.url; 
var change_div = datVar.dataset.change_div; 

xmlhttp.onreadystatechange = function() 
{ 
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) 
    { 
     document.getElementById(change_div).innerHTML = xmlhttp.responseText; 
    } 
} 

xmlhttp.open("POST", url, true); 
xmlhttp.setRequestHeader("Content-type", "multipart/form-data"); 
xmlhttp.send('NULL'); 
+0

我沒有看到你在任何地方添加表單數據? –

回答

0

您需要將要發送的數據傳遞給xmlhttp.send()方法。目前你傳遞'NULL',所以它抱怨數據丟失。

類似 var data = document.getElementById('#uploadImage'); 獲取表單。 創建FormData對象(FormData僅支持現代瀏覽器) var formData = new FormData(data); 然後傳遞formData到send方法應該做的事。