diff --git a/app/Http/Controllers/MediaController.php b/app/Http/Controllers/MediaController.php index 74bfc57..a530f5d 100644 --- a/app/Http/Controllers/MediaController.php +++ b/app/Http/Controllers/MediaController.php @@ -152,7 +152,7 @@ class MediaController extends Controller $fileName = $request->input('filename', $file->getClientOriginalName()); $fileName = Helpers::cleanFileName($fileName); - if($request->has('fileappend') && $request->has('filesize')) { + if(($request->has('filestart') || $request->has('fileappend')) && $request->has('filesize')) { $fileSize = $request->get('filesize'); if($fileSize > $max_size) { @@ -166,8 +166,13 @@ class MediaController extends Controller $tempFilePath = sys_get_temp_dir() . '/chunk-' . $fileName; + $filemode = 'a'; + if($request->has('filestart')) { + $filemode = 'w'; + } + // Append the chunk to the temporary file - $fp = fopen($tempFilePath, 'a'); + $fp = fopen($tempFilePath, $filemode); if ($fp) { fwrite($fp, file_get_contents($file->getRealPath())); fclose($fp); diff --git a/public/script.js b/public/script.js index 3757814..982fa51 100644 --- a/public/script.js +++ b/public/script.js @@ -130,7 +130,13 @@ let SM = { formData.append('file', chunk); formData.append('filename', file.name); formData.append('filesize', file.size); - formData.append('fileappend', true); + + if (start === 0) { + formData.append('filestart', true); + } else { + formData.append('fileappend', true); + } + if (title !== '') { formData.append('title', title); }