
ajax的基本用法:ajax能做到无刷新数据交互,给用户体验带来好处的同时也减小了服务器的压力,所以运用ajax能使网站性能更强劲、更吸引用户。
第一步:ajax引擎对象的创建(相对简单的创建方法,更严格的方式请参考W3C):
第二步:创建请求机制:(建立与服务器端的通信接口)
第三步:处理返回的数据(当 readyState 等于 4 且状态为 200 时,表示响应已就绪,可以在前端进行数据处理了。)
<!DOCTYPE html><html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>大文件切割上传</title>
<link rel="stylesheet" href="">
<script>
function selfile(){
const LENGTH = 1024 * 1024 * 10//每次上传的大小
var file = document.getElementsByName('video')[0].files[0]//文件对象
var filename=document.getElementsByName('video')[0].files[0].name
var totalSize = file.size//文件总大小
var start = 0//每次上传的开始字节
var end = start + LENGTH//每次上传的结尾字节
var fd = null//创建表单数据对象
var blob = null//二进制对象
var xhr = null//xhr对象
while(start <totalSize){
fd = new FormData()//每一次需要重新创建
xhr = new XMLHttpRequest()//需要每次创建并设置参数
xhr.open('POST','upload.php',false)
blob = file.slice(start,end)//根据长度截取每次需要上传的数据
fd.append('video',blob)//添加数据到fd对象中
fd.append('filename',filename)//获取文件的名称
xhr.send(fd)//将fd数据上传
//重新设置开始和结尾
start = end
end = start + LENGTH
}
}
</script>
</head>
<body>
<h1>大文件切割上传</h1>
<input type="file" name="video" onchange="selfile()" />
</body>
</html>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)