archive/src/chunker.php
Michael Wesemann a936975feb -
2022-04-08 13:36:54 +02:00

65 lines
1.6 KiB
PHP

<?
require('./init.php');
$upid=getpar('upid');
$catid=getpar('catid'); if (PM("/^\d+$/",$catid)) $xid=idfromcatid($catid);
$cn=0;
if ($handle = opendir("$TMP")) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
if (preg_match("/^($upid)\-(\d+)\-(.*$)/",$entry,$M)) {
$CHUNKS[$M[3]][$M[2]]=$entry;
$cn++;
}
}
}
}
$nf=0;
if ($cn==0) phplog('no chunks found');
foreach (array_keys($CHUNKS) as $fn) {
$CHUNK=$CHUNKS[$fn];
$fid=id62(8);
$filename=htmlentities($fn);
sort($CHUNK,SORT_REGULAR);
phplog("FILE: $fn $filename",'chunk');
foreach (array_keys($CHUNK) as $cn) {
$c=$CHUNK[$cn];
phplog("CHUNK: $c",'chunk');
system("cat '$TMP/$c' >> '$DATA/$fid'");
system("rm '$TMP/$c'");
}
$mime=mime_content_type("$DATA/$fid");
$size=filesize("$DATA/$fid");
$md5=md5_file ("$DATA/$fid");
$realfn=myrow($DB,"SELECT * FROM tmp WHERE id='$fn' LIMIT 1");
$mysqlts=date('Y-m-d H:i:s');
$sql="INSERT INTO docs SET docid=0,catid=$catid,ts='$mysqlts',rm=0,md5='$md5',filename='".
mysqli_escape_string($DB,$realfn['value']) ."',mime='".mysqli_escape_string($DB,$mime)."',size=$size";
$res= mydo($DB,$sql);
$docid=mysqli_insert_id($DB);
mydo($DB,"UPDATE cat SET tcha='$mysqlts' WHERE catid=$catid;");
if (!is_dir("$DATA/$catid")) mkdir("$DATA/$catid");
rename("$DATA/$fid","$DATA/$catid/$docid");
alog($catid,$docid,'upload');
}
header("Location: /$xid/edit");exit;
?>