利用jQuery上传二进制文件

admin 发布时间:2016-07-25 分类:分享 阅读:8707次 添加评论

前段代码需要与其他接口进行交互,ajax上传配置图片文件。代码用的是HTML5的FormData对象,FormData对象可以添加键值对来模拟我们用到的表单控件,将值转化为二进制传递。

HTML表单代码:

<form id="formTimeLine" class="form-horizontal no-margin form-border">
    <div class="form-group">
        <label class="col-md-2 control-label">发送的图片</label>
        <div class="col-md-8">
            <input name="file-img" class="file-img" multiple accept=".jpg,.png" type="file">
        </div>
    </div>
</form>

上传的JavaScript代码:

var data = new FormData($("#formTimeLine")[0]);
$.ajax({
    type: 'POST',
    url: url,
    dataType: 'json',
    cache: false,
    processData: false,    //需要正确设置此项
    contentType: false,
    enctype: 'multipart/form-data',    //需要正确设置此项
    data: data,
    success: function (data) {
        //返回成功
    },
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        alert('error:');
    }
});

我们还可以不借助 HTML 表单,直接向 FormData 对象中添加一个 File 对象,来上传文件。

var oForm = new FormData();
oForm.append("file-img", myimg);

该特性可能有部分浏览器不支持。

暂无留言

发表评论:

◎欢迎您的参与讨论。