0
我想使用FormData對象打包圖像並通過Ajax發送。 但我得到的是:關於Ajax上傳圖像爲純javascript javascript
產生java.io.IOException: org.apache.tomcat.util.http.fileupload.FileUploadException:在 請求被拒絕,因爲沒有多邊界發現
這是我的代碼:
function getId(arg) {
return document.getElementById(arg);
}
function doFirst(){
showPanel = getId("showPanel");
sendbtn = getId("sendbtn");
mfile = getId("mFile");
mfile.addEventListener('change',showUp,false);
}
function showUp(){
var fReader = new FileReader();
fReader.readAsDataURL(mfile.files[0]);
fReader.onload = function (e){
mImg = document.createElement("img");
mImg.src=e.target.result;
mImg.id ="mImg";
showPanel.removeChild(showPanel.firstChild);
showPanel.appendChild(mImg); \t
showPanel.replaceChild(showPanel.firstChild,showPanel.lastChild);
\t \t
//first time what i wrote is using apprnd();
//var fd = new FormData();
//fd.append("myFile",mfile.files[0]);
\t
//second time i through input all form to create a FormData object
fd = new FormData(getIds("picForm"));
\t \t
xhr = new XMLHttpRequest();
\t \t
/*this section just for test
xhr.onreadystatechange = function(){
console.log("readyState"+xhr.readyState);
console.log("status"+xhr.status);
}*/
xhr.open("post","AddMemberPic");
//xhr.setRequestHeader("Content-Type","multipart/form-data");
xhr.send(fd);
}
}
window.onload = doFirst;
<div id="showPanel">upload picture</div>
<form action = "AddMemberPic" method = "post" id="picForm" enctype="multipart/form-data">
<input type="file" name="mFile" id="mFile">
</form>
我的代碼有什麼問題?爲什麼?
感謝您的回答。
如果您將xhr.setRequestHeader行註釋掉,它是否會神奇地開始工作? – epascarello
我曾試過。但阿賈克斯不工作.. –
「但阿賈克斯不工作」 - 這不是一個有用的問題描述。當你解決epascarello指出的問題時:你會得到什麼錯誤信息?瀏覽器開發人員工具的「網絡」選項卡中顯示哪些數據? – Quentin