html图片postmultipart,图片上传之前端实现

预备知识

文件上传使用的是POST接口,发送的Content-Type 为multipart/form-data

上传

前端上传的html实现

上传js实现

js上传主要使用XMLHttpRequest和FormData对象以及表示上传进度的ProgressEvent对象。

var form = document.getElementById('fileUpload');

form.onsubmit = function(event){

event.preventDefault();

var uploadInput = document.getElementById("uploadInput");

//files js FileList对象

var file = uploadInput.files[0]

/**

* file js File对象,包含以下信息

* lastModified:1480827962683

* lastModifiedDate:Sun Dec 04 2016 13:06:02 GMT+0800 (中国标准时间)

* name:"IMG_2265.PNG"

* size:74278

* type:"image/png"

* webkitRelativePath:""

*/

console.log(file);

var data = {name:uploadInput.name,file:file};

uploadFile(event.srcElement.action,data,complete,error,progress,start,end);

}

function complete(progressEvent) {

console.log('complete : ', progressEvent);

}

function error(progressEvent) {

console.log('error : ' , progressEvent);

}

function progress(progressEvent) {

console.log('progress : ' , progressEvent);

}

function start(progressEvent) {

console.log('start : ', progressEvent);

}

function end(progressEvent) {

console.log('end : ' , progressEvent);

}

/**

*

* @param url POST url地址

* @param file 上传的文件对象

* @param complete 上传完成回调

* @param error 上传错误回调

* @param progress 上传进度回调

* @param start 开始上传回调

* @param end 上传结束

*/

function uploadFile(url,data,complete,error,progress,start,end) {

var request = new XMLHttpRequest();

var formData = new FormData();

formData.append(data.name,data.file);

//true 表示异步请求

request.open("post",url,true);

request.onload = complete;

request.onerror = error;

request.upload.onprogress = progress;

request.upload.onloadstart = start;

request.upload.onloadend = end;

request.send(formData);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值