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);

}

希望本文所述对大家PHP程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值