<?php
// SCRIPT CHE L'UPLOAD DEL FILE MP3 NEL PERCORSO SCELTO E MEMORIZZA L'UPLOAD ESEGUITO NELLA TABELLA
session_start();
ini_set('max_execution_time', 300000);
include("include/setsession.php");
include("include/functions.php");
require_once("include/connect.inc");
mysqli_query($link, "SET character_set_results=utf8");

$day = '';
$edition = 0;
$filename = '';
$name = '';

if (isset($_POST['day']) && $_POST['day'] != '') 				$day = $_POST['day'];
if (isset($_POST['edition']) && $_POST['edition'] != '') 		$edition = $_POST['edition'];

$parts = explode('-', $day);

/*
Carica i dati dell’edizione scelta.

Da lì ricava:

timeedition → orario.

path → cartella in cui salvare il file.

name → prefisso del file.

Poi costruisce un nuovo nome file nel formato:
	*/
$sql = "SELECT * FROM " . $s_prefix . "_editions WHERE id=" . $edition;
$val = mysqli_query($link, $sql) or die('Query failed: ' . mysqli_error($link));
if ($row = mysqli_fetch_array($val, MYSQLI_ASSOC)) {
	$timeed = formatHHMM($row['timeedition'] / 1000);
	$path = $_SESSION['urlbase'] . '/' . $row['path'];
	//$path = $row['path'];
	if (substr($path, (strlen($path) - 1)) != '/') $path = $path . '/';
	$name = $row['name'] . '_' . $parts[2] . '-' . $parts[1] . '-' . $parts[0] . '_' . str_replace(":", ".", $timeed) . '.mp3';
}

echo "path " . $path . "<br/>";
echo "filename " . $filename . "<br/>";

/*
Controlla che il file caricato sia un .mp3.

Sposta il file caricato (tmp_name) nella cartella $path.

Se esiste già un file con il nome target ($path.$name), lo elimina.

Rinomina il file caricato con il nome standardizzato ($path.$name).
*/
$audiofile  = $_FILES['filename']['type'];
if ($audiofile != "") {
	$filename = basename($_FILES['filename']['name']);
	$estensione = strtolower(substr($filename, strrpos($filename, "."), strlen($filename) - strrpos($filename, ".")));
	if ($estensione == '.mp3') {
		echo $_FILES['filename']['tmp_name'] . " " . $path . $filename . "<br/>";
		/*if(move_uploaded_file($_FILES['filename']['tmp_name'], $path.$filename)) {
			$file = basename($path.$filename);
			if(file_exists($path.$name)) {
				//echo 'Esiste<br>';
				try {
					//echo 'lo elimino<br>';
					$dir=$path.$name;
					system('/bin/rm -rf ' . escapeshellarg($dir));
				} catch (Exception $e) {
					//echo 'Impossibile eliminare il file';
				}
				// unlink($path.$name);
			}
			rename($path.$file,  $path.$name);
		}*/

		
	
		try {
			// Controllo che l'upload sia stato ricevuto correttamente
			if (!isset($_FILES['filename']) || $_FILES['filename']['error'] !== UPLOAD_ERR_OK) {
				throw new Exception("Errore nel caricamento del file.");
			}

			// Percorso completo di destinazione
			$dest = $path . $filename;

			// Provo a spostare il file dalla cartella temporanea
			if (!move_uploaded_file($_FILES['filename']['tmp_name'], $dest)) {
				throw new Exception("Impossibile trasferire il file.");
			}

			$file = basename($dest);

			// Se esiste già un file con quel nome, provo ad eliminarlo
			if (file_exists($path . $name)) {
				try {
					$dir = $path . $name;
					if (!@unlink($dir)) { // uso @unlink al posto di system()
						throw new Exception("Impossibile eliminare il file precedente.");
					}
				} catch (Exception $e) {
					echo "Errore: " . $e->getMessage() . "<br>";
				}
			}

			// Rinomino il nuovo file
			if (!rename($path . $file, $path . $name)) {
				throw new Exception("Impossibile rinominare il file.");
			}

			echo "File caricato con successo!";
		} catch (Exception $e) {
			echo "Errore: " . $e->getMessage();
		}
	}
}

//Scrittura nel database (tabella _uploads)
if ($edition != 0) {
	$ided = 1;
	$sql = "SELECT MAX(id) AS maxid FROM " . $s_prefix . "_uploads";
	$val = mysqli_query($link, $sql) or die('Query failed: ' . mysqli_error($link));
	if ($res = mysqli_fetch_array($val, MYSQLI_ASSOC)) {
		$ided = ($res['maxid'] + 1);
	}

	$sql = "INSERT INTO " . $s_prefix . "_uploads (id, dateup, idedition, dateedition, iduser, filename) VALUE (" . $ided . ", '" . date("Y-m-d H:i:s") . "', " . $edition . ", '" . $day . "', " . $_SESSION['iduser'] . ", '" . $path . $name . "')";
	$res = mysqli_query($link, $sql) or die('Query failed: ' . mysqli_error($link));
}
$_SESSION['ided'] = $edition;
$_SESSION['dataed'] = $_POST['day'];
header("Location: index.php");
