最近坐到有一个需要手机端上传图片的项目,本来是用base64的,但后台说要直接提交数据的,不用base64;那只好用表单提交咯,整理了一下:

html部分

 <form id="uploadForm" enctype="multipart/form-data" method="post" >
        <input type="file" name="imageFile" id="imageFile" onchange="fileSelected()" accept="image/*" />
 </form>


js部分

var iMaxFilesize = 2097152; //2M
window.fileSelected = function () {
    var oFile = document.getElementById('imageFile').files[0];    //读取文件
    
    if (oFile.size > iMaxFilesize) {
        alert("图片大小不能超过2M");
        return;
    }
    var vFD = new FormData(document.getElementById('uploadForm')),    //建立请求和数据
        oXHR = new XMLHttpRequest();
    oXHR.addEventListener('load', function (resUpload) {
        //成功
    }, false);
    oXHR.addEventListener('error', function () {
        //失败
    }, false);
    oXHR.addEventListener('abort', function () {
        //上传中断
    }, false);
    oXHR.open('POST', "/ZCase/Add");
    oXHR.send(vFD);
};