php 切片上传,GitHub - lilili001/h5-slice-upload: h5上传切片文件至后台,后台php

前端js上传文件切片

实现功能:

前端多文件上传

前端文件切片, 并命名uuid

后端接受切片并根据文件名称保存至文件夹

后端判断是否是最后一个切片,合并切片

技术要点

h5文件切片

切片上传请求参数:

filename: file-5bad6aab-cf7d-bfdb-356a-36d7b4ab1e1e.jpg

fragname: frag-1e0d1311-2369-317b-262e-04a9f427ea8c

file: (binary)

fragindex: 0

total: 2

es6 async await

php monolog composer包

安装指导

下载文件到本地

安装composer 包

composer install

访问页面index.html

说明

文件合并的两种方法:

$orgFileName = $_POST['filename'];

方法一:

//合并file文件夹中的frag为最终文件

if( $_POST['fragindex'] == $_POST["total"] -1 ){

$blob = "";

$fragDir = FRAGPATH.$filename;

$handler = @opendir($fragDir);

//获取filename

while ( ( $fragFileName = readdir($handler) ) !== false ){

// 务必使用!==,防止目录下出现类似文件名“0”等情况

if ($fragFileName !== "." && $fragFileName !== "..")

{

$blob .= file_get_contents( $fragDir . "/" . $fragFileName );

//删除切片文件

//@unlink($fragDir . "/" . $fragFileName);

}

}

//合并切片到文件

file_put_contents( FILEPATH. "/" . $filename . ".". $ext , $blob );

//删除切片文件夹

//@rmdir($fragDir);

方法二:

while ( ( $fragFileName = readdir($handler) ) !== false ){

$fp = fopen( FILEPATH . '/' . $orgFileName,"ab" );

// 务必使用!==,防止目录下出现类似文件名“0”等情况

if ($fragFileName !== "." && $fragFileName !== "..")

{

//$blob .= file_get_contents( $fragDir . "/" . $fragFileName );

$value = $fragDir . "/" . $fragFileName;

$handle = fopen($value,"rb");

fwrite($fp,fread($handle,filesize($value)));

fclose($handle);

//删除切片文件

@unlink($fragDir . "/" . $fragFileName);

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值