mercoledì 16 Settembre 2020

Download in corso

Softwareone.it

10-01-2019

Upload and play file Audio mp3 con MYSQL | PHP

La struttura dei file.
La cartella audio conterrà una cartella uploads e le tre pagine index.php upload.php e play.php per l’upload dei file.

cartella:
|-> audio/
|-> uploads/
| -index.php
| -upload.php
| -play.php
----------------------------
Pubblicità

La pagina index ospiterà il form di caricamento file. 
Creare un form per upload dei file audio.

<!doctype html>
  <html><
  head><
  meta charset="utf-8"><
  title>Documento senza <titolo
  </head><
   
  <body><form action="upload.php" method="post" enctype="multipart/form-data"><
  input type="file"  name="audioFile" /><
  input type="submit" value="Upload Audio" name="save_audio" /><
  </form><
   
  </body>
  </html>

Creiamo database e tabelle che ospitera i file audio da noi inviati.

SQL

create database audio_db;
use audio_db;
create table audio_tb
(id int not null primary key auto_increment,
filename varchar(300)
);

Il nostro database di nome audio_db sarà composto da una tabella di nome audio_tb che conterrà i campi id filename.

La pagina upload che riceverà i dati dal form per poi inviarli al database.

<?php 
if(isset($_POST['save_audio']) &&amp; $_POST['save_audio']=="Upload Audio")
 
{       //cartella che contiene i file inviati
        $dir='uploads/';
        $audio_patch=$dir.basename($_FILES['audioFile']['name']);
        if(move_uploaded_file($_FILES['audioFile']['tmp_name'],$audio_patch))
        {
            echo'Upload avvenuto con successo.!';
            saveAudio($audio_patch);
            displayAudios();
             
            }
    }
function displayAudios()
{
    $conn = mysqli_connect('localhost', 'root', 'password', 'audio_db');
    if (!$conn) {
                die ('Non riesco a connettermi: ' . mysqli_error());
                }
                 
    $query="select * from audio_tb";
    $r=mysqli_query($conn,$query);
        while($row=mysqli_fetch_array($r))
        {
            echo '<a href="play.php?name='.$row['filename'].'">'.$row['filename'].'</a>';
            echo "<br/>";
            }
           mysqli_close($conn);
    }
 
function saveAudio($fileName)
{
    $conn = mysqli_connect('localhost', 'root', 'password', 'audio_db');
    if (!$conn) {
                die ('Non riesco a connettermi: ' . mysqli_error());
                }
                
    $query="insert into audio_tb(filename)values('{$fileName}')";
    mysqli_query($conn,$query);
     
    if(mysqli_affected_rows($conn)>0)
    {
        echo"File Audio salvato nel Database !";
        }
    mysqli_close($conn);
    }
?>

Lo script contiene due funzioni, una per la visualizzazione dei file, e un’altra per il salvataggio dei file.

La funzione saveAudio ci permette di connetterci al database da noi creato e di caricare,salvare i nostri file su database, grazie alla $query=”insert into.

Con la funzione displayAudios andiamo a visualizzare i file presenti nel nostro database grazie alla $query=”select * from audio_tb”;

Tutto quello che ci rimane fare e popolare la nostra pagina play

Creare la pagina play.php che ci servirà per riprodurre i file audio

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Documento senza titolo</title>
</head>
 
<body>
<audio controls>
<source src="<?php echo $_GET['name']; ?>" type="audio/mpeg">
</source>
</audio>
</body>
</html>

Possiamo aggiungere dei controlli prima dell’upload dei file per esempio la dimensione massima, in questo caso a 6MB.

if ($_FILES['audioFile']['size'] > 6291456) {
  echo 'File troppo grande per essere caricato!';
  echo"<br/>";
  echo'Dimensione massima 6MB';
  echo "<br/>";
  echo"Riprova con un altro file di dimensione piu piccola.";
  exit;
}

Verificare che l’upload non sovrascriva un file già esistente file

$target_file = 'uploads/' . $_FILES['audioFile']['name'];
if (file_exists($target_file)) {
  echo 'File esistente';
  exit;
}

Verificare l’estensione file.

$ext_ok = array('mp3', '', '');
$temp = explode('.', $_FILES['userfile']['name']);
$ext = end($temp);
if (!in_array($ext, $ext_ok)) {
  echo 'Il file ha un estensione non ammessa!';
  exit;
}

In alcuni casi dare permessi di lettura e scrittura (777).

https://www.php.net/manual/en/function.move-uploaded-file.php

Scarica il file completo

Lascia un commento

Pubblicità