100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > php切割文件上传 php+ajax实现文件切割上传功能示例

php切割文件上传 php+ajax实现文件切割上传功能示例

时间:2022-09-24 16:36:36

相关推荐

php切割文件上传 php+ajax实现文件切割上传功能示例

本文实例讲述了php+ajax实现文件切割上传功能。分享给大家供大家参考,具体如下:

html5中的file对象继承blob二进制对象,blob提供了一个slice函数,可以用来切割文件数据。

var myform = document.getelementbyid("myform");

var upfile = document.getelementbyid("upfile");

myform.onsubmit = function() {

//获取文件对象

var file = upfile.files[0];

//获取文件大小

var filesize = file.size;

//一次截取的大小(字节)

var cutsize = 1024 * 1024 * 10;

//开始截取位置

var cutstart = 0;

//结束截取位置

var cutend = cutstart + cutsize;

//截取的临时文件

var tmpfile = new blob();

while(cutstart < filesize) {

tmpfile = file.slice(cutstart, cutend);

//我们创建一个formdata对象

var fd = new formdata();

//把文件添加到formdata对象中

fd.append("file", tmpfile);

var xhr = new xmlhttprequest();

//这里使用同步

xhr.open("post", "upfile.php", false);

//上传进度

console.log(math.round( (cutstart + tmpfile.size) / filesize * 100) + "%");

//发送formdata对象

xhr.send(fd);

//重新设置截取文件位置

cutstart = cutend;

cutend = cutstart + cutsize;

}

return false;

};

upfile.php代码如下:

$uploaddir = './upload/';

if(!file_exists($uploaddir)) {

@mkdir($uploaddir, 0777, true);

}

$uploadfile = $uploaddir . basename($_files['file']['name']);

if(!file_exists($uploadfile)) {

//如果文件不存在

move_uploaded_file($_files['file']['tmp_name'], $uploadfile);

} else {

//如果文件已存在,追加数据

file_put_contents($uploadfile, file_get_contents($_files['file']['tmp_name']), file_append);

}

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。