断点上传单纯靠PHP 是做不了的.
因为普通的浏览器端没那功能.(上传的时候 还是会整个文件编码发送)
想实现的话 , 客户端需要插件了,
客户端可以使用flex实现. 服务端, PHP可以写个webservice 接受文件.
是实现断点续传,就需要把大文件分割成多个小文件,然后单个上传。传完后在合并。│ merge.PHP –合并文件脚本
│ merge.zip –合并后文件
│ socket.zip –需要分割的文件
│ split.php –分割文件脚本
│
└─split –分割后小文件目录
下面是源码
split.php
<?php
$fp = fopen("socket.zip", "rb")
$filesize = 10
$i = 0
$no = 1
while(!feof($fp))
{
$file = fread($fp, $filesize)
$fp2 = fopen("./split/socket.port".sprintf("%04d",$no).".".$i."-".($i+$filesize).".tmp", "wb")fwrite($fp2, $file, $filesize)
fclose($fp2)
$i+=$filesize+1
$no++
}
fclose($fp)
merge.php
<?php
$filelist = glob('./split/*socket*.tmp')$filesize = 10
//print_r($filelist)
$mergeFileName = 'merg.zip'
unlink($mergeFileName)
$fp2 = fopen($mergeFileName,"w+")
foreach($filelist as $k =>$v)
{
$fp = fopen($v, "rb")
$content = fread($fp, $filesize)
fwrite($fp2, $content, $filesize)
unset($content)
fclose($fp)
echo $k,"\n"
}
fclose($fp2)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)