$temp_dir = 'tmp/' . $_GET['resumableIdentifier']; $chunk_file = $temp_dir . '/' . $_GET['resumableFilename'] . '.part' . $_GET['resumableChunkNumber']; if (file_exists($chunk_file)) { header("HTTP/1.0 200 Ok"); } else { header("HTTP/1.0 204 No Content"); } } } if (!empty($_FILES)) { $resumabledata = $chunk->setupFilename($_POST['resumableFilename'], $_POST['resumableIdentifier']); $resumableFilename = $resumabledata['filename']; foreach ($_FILES as $file) { // init the destination file (format <filename.ext>.part<#chunk> // the file is stored in a temporary directory $temp_dir = 'tmp/' . $_POST['resumableIdentifier']; $dest_file = $temp_dir . '/' . $resumableFilename . '.part' . $_POST['resumableChunkNumber']; // create the temporary directory if (!is_dir($temp_dir)) { mkdir($temp_dir, 0777, true); } // move the temporary file if (!move_uploaded_file($file['tmp_name'], $dest_file)) { setError(" <span><i class=\"fa fa-exclamation-triangle\"></i> Error saving chunk" . $_POST['resumableChunkNumber'] . "for " . $resumableFilename . "</span> "); } else { // check if all the parts present, and create the final destination file $chunk->createFileFromChunks($_GET['loc'], $temp_dir, $resumableFilename, $_POST['resumableChunkSize'], $_POST['resumableTotalSize'], $_GET['logloc']); } } } }