PHP实现浏览器端大文件分片上传如何实现?

PHP实现浏览器端大文件分片上传如何实现?,第1张

分片上传的原理就是通过切割上传文件,然后在浏览器的头部通过etag来进行划分文件传输,服务器端接收到文件片段和分割起始符之后,进行拼接文件,最后合成一个大文件。

你可以自己通过php来获取浏览器头部传输标志来进行文件的拼接组装,也可以通过现有的大文件传输类来上传文件。

关键点

记住分割文件点,也就是分割文件的顺序,拼接文件需要通过etag按照顺序拼接,分片可以并发传输,这其实也是并发下载的原理。

$_FILES官方文档

你可以看看官方的$_FILES文档,里面有对$_FILES的内容的解释。

想通过PHP来处理文件信息就得通过$_FILES的内容来处理,比如文件类型可以用type来判断,要求文件类型为jpg,那就判断if ($_FILES['file1']['type'] === 'image/jpeg'),这里的file1并不是绝对的,视情况而定。

当然如果你觉得判断类型太麻烦,你也可以直接从name中判断后缀名,自己将文件名分割一下就好了。大小可以用size,默认单位是字节,不超过2M就要除以1024*1024了,可以将字节转换到兆字节。

要将上传的文件放在U目录下,就用move_uploaded_file函数来解决,move_uploaded_file官方文档

$arrDenyExts = array("gif", "jpeg", "jpg", "png") //不允许上传文件的格式

$temp = explode(".", $_FILES["file"]["name"]) //按点分割文件名,这里根据

//$temp = explode(".","d:\test.jpg") //按点分割文件名

$extension = end($temp)//获取最后一个元素,确保是文件格式

$isAllow = true

foreach($arrDenyExts as $key=>$val) {

if($extension==$val) {

$isAllow=false

break

}

}

if($isAllow) {

echo "该文件格式允许上传<br/>"

} else {

echo "该文件格式不允许上传<br/>"

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11950527.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存