<!DOCTYPE html><html><head><title>test blob</title></head><body><input type="file" name="test" onCha
<!DOCTYPE html><html><head> <title>test blob</title></head><body> <input type="file" name="test" onChange="showPhoto(this)"/></body><script type="text/javascript">function showPhoto(e){ var files=e.files, file=files[0]; var typeTemp=file.type; var reader = new FileReader(); reader.readAsDataURL(file); reader.onload=function(){ console.log("this") var blobTemp = getBlob(file, typeTemp);// 创建blob对象,将blob与file关联 console.log(blobTemp) function getBlob(buffer, format){ var Builder = window.WebKitBlobBuilder || window.MozBlobBuilder; if(Builder){ var builder = new Builder; builder.append(buffer); return builder.getBlob(format); } else { return new window.Blob([ buffer ], {type: format}); } } var sliceSize = 1024 * 1024;//设置每次上传文件的大小 这里是1M var length = Math.ceil(blobTemp.size / sliceSize); for (var i = 0; i < length; i ++) { var start = i * sliceSize; var end = start + sliceSize - 1; if (end > blobTemp.size - 1) end = blobTemp.size - 1; var blob = sliceBlob(blobTemp, start, end);//对文件进行切割 function sliceBlob(blob, start, end) { if (blob.slice) { return blob.slice(start, end); }else { throw new Error("This doesn't work!"); } } console.log(blob) var formData=new FormData(); formData.append('name',blob); // 这个name是后台要求的配置的参数名字 //分批次上传文件 // 七牛支持分批次上传 } }}</script></html>