Здесь много проблем с сложным эффектом.
$json_str = file_get_contents('php://input');
Это читает весь ввод в память и блокирует, пока это не будет сделано.Не делайте этого.
$json_obj = json_decode($json_str);
Если у вас есть 50 МБ JSON, вы, вероятно, делаете что-то не так.
$Video = $json_obj->Video;
Это то, что вы делаете неправильно ...хранение большого двоичного двоичного объекта в формате сериализации небольших структурированных данных.Вы понимаете, что анализатор JSON должен читать и обрабатывать все это?Не отправляйте JSON для этого!
$video_decode = base64_decode($Video);
Не используйте кодировку base-64 без крайней необходимости.Это добавляет 33% накладных расходов к объему хранилища, а также к процессору для кодирования / декодирования.Это полная трата и совершенно не нужно.
$video_filename = __DIR__ . '/uploads/'. $CAF . '_'.$CafDate.'_VID.mp4';
$video_dbfilename = './uploads/'. $CAF . '_'.$CafDate.'_VID.mp4';
У вас могут быть серьезные проблемы с безопасностью на этих двух линиях.Что если кто-то отправит путь ../../../etc/init.d/something-evil
?Не позволяйте пользователю диктовать имя файла на диске каким-либо образом.
$save_video = file_put_contents($video_filename, $video_decode);
Комментарий от file_get_contents()
применяется здесь в том, что вы должны использовать этот метод.Вместо этого передайте содержимое на диск.