> 백엔드 개발 > PHP 튜토리얼 > php接收文件时的一些有关问题(考虑高并发)

php接收文件时的一些有关问题(考虑高并发)

WBOY
풀어 주다: 2016-06-13 12:14:11
원래의
949명이 탐색했습니다.

php接收文件时的一些问题(考虑高并发)
最近在做一个上传大文件的工具,用mfc写的,在php端遇到一些问题,我的思路是这样的,在mfc中切割大文件,然后将小块文件连续http上传到php端,然后php拼接这些文件,不过遇到了一些问题,
1.因为php拼接文件是通过在文件尾追加的形式实现的,因此两个人上传同名文件时,就会产生分不清楚刚上传的文件块是属于谁的尴尬。(个人考虑用锁的形式避免冲突,可是一个人在上传的时候,总不能让另一个等他上传好了再上传吧)
2.如果用户中途关闭了上传共据,产生呢个的临时文件该怎么清理,难道要再写一个驻留程序,专门清理这些垃圾。
求各位大神赐教?
------解决思路----------------------
思路:可以在每个小块文件数据前面加几个标识,标识它们是同一个文件,最好固定长度,可以生成uuid
------解决思路----------------------
碎片文件名要有唯一標識。

例如 格式
uid: 文件唯一id標識
num: 此文件的碎片數量
curr: 當前碎片的序號

uid_num_curr

例如:10000_10_01
------解决思路----------------------
呵呵,楼上的能解决 两个人上传同名文件时,就会产生分不清楚刚上传的文件块是属于谁的尴尬。 的问题吗?显然是不能的!

分块上传和分块下载原理是一样的。数据源方都必须提供一个记录有:文件名、文件长度、每块的次序、标识、长度、验证信息等与检查数据完整性和拼装相关的数据块,通常接收方是以文件形式保存和使用的
而在分块传输的数据块前面也需要加入标识该块的信息,接收方分离出该信息并与信息文件对比无误后,方可组装数据文件

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿