fix video

This commit is contained in:
Francesco Picone
2025-12-09 16:40:43 +01:00
parent c8721eaefd
commit 625acba431
3 changed files with 28 additions and 8 deletions

View File

@@ -52,8 +52,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$upload_path = $upload_dir . $file_name;
if (move_uploaded_file($_FILES['video_file']['tmp_name'], $upload_path)) {
// Imposta il percorso relativo per il database
$video_url = '/uploads/lessons/' . ($is_demo ? 'demo' : 'pay') . '/' . $file_name;
// Imposta il percorso relativo per il database (senza slash iniziale)
$video_url = 'uploads/lessons/' . ($is_demo ? 'demo' : 'pay') . '/' . $file_name;
// Estrai durata automaticamente se non specificata
if (empty($duration)) {

View File

@@ -82,11 +82,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
if (move_uploaded_file($_FILES['video_file']['tmp_name'], $upload_path)) {
// Elimina il vecchio file se esisteva
if (!empty($lesson['video_url']) && file_exists('../' . $lesson['video_url'])) {
@unlink('../' . $lesson['video_url']);
$old_video_path = ltrim($lesson['video_url'], '/');
if (!empty($lesson['video_url']) && file_exists('../' . $old_video_path)) {
@unlink('../' . $old_video_path);
}
// Imposta il nuovo percorso
$video_url = '/uploads/lessons/' . ($is_demo ? 'demo' : 'pay') . '/' . $file_name;
// Imposta il nuovo percorso (senza slash iniziale)
$video_url = 'uploads/lessons/' . ($is_demo ? 'demo' : 'pay') . '/' . $file_name;
// Estrai durata automaticamente se non specificata
if (empty($duration)) {

View File

@@ -135,8 +135,27 @@ $can_view = $lesson['is_demo'] || $user_owns;
<?php endif; ?>
<?php else: ?>
<!-- Video locale o altro -->
<video controls width="100%" height="100%" style="border-radius: 8px;">
<source src="<?php echo htmlspecialchars($lesson['video_url']); ?>">
<?php
// Determina il percorso completo del video
$video_path = $lesson['video_url'];
// Se il percorso non inizia con http, aggiungi il SITE_URL
if (!preg_match('/^https?:\/\//', $video_path)) {
// Rimuovi eventuali slash iniziali
$video_path = ltrim($video_path, '/');
$video_path = SITE_URL . '/' . $video_path;
}
// Determina il tipo MIME dal file
$extension = strtolower(pathinfo($lesson['video_url'], PATHINFO_EXTENSION));
$mime_types = [
'mp4' => 'video/mp4',
'webm' => 'video/webm',
'ogg' => 'video/ogg',
'mov' => 'video/quicktime'
];
$mime_type = $mime_types[$extension] ?? 'video/mp4';
?>
<video controls width="100%" height="100%" style="border-radius: 8px;" preload="metadata">
<source src="<?php echo htmlspecialchars($video_path); ?>" type="<?php echo $mime_type; ?>">
Il tuo browser non supporta il tag video.
</video>
<?php endif; ?>