Téléchargement de fichier PHP

Le problème exposé dans ce sujet a été résolu.

Bonjour,

J’ai créer un site web sur lequel on a la possibilité de télécharger de fichier mp3. Tout fonctionne bien, mais pas sur Android.

Lorsque les fichiers audio font plus d’une heure, le nom du fichier ne correspond pas à celui que j’ai mis dans header('Content-Disposition: attachment; filename="'.$file->getName().'"');, mais au nom réel de fichier sur le serveur. Pourtant sur les petits fichier audio, ça fonctionne parfaitement !

Ensuite, deuxième problème, sur android une fois le fichier télécharger, il n’apparait pas dans la bibliothèque musical (Il n’est pas reconnu comme fichier audio, pourtant j’arrive bien le lire avec les utilitaires audio). Ceci a été testé sur plusieurs téléphone android, le résultat est identique. Et j’ai testé en téléchargeant un fichier audio ailleurs sur le net, et la ça fonctionne.

Mon script de téléchargement (Les fichiers sont stocké sous la form 59357962d7583.mp3 le serveur):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$file_path = FILE_LOCATION.$file->getUniqid().'.mp3';

if(!file_exists($file_path))
    Wx_Errors::setAndShowError(500);

header('Content-Description: File Transfer');
header('Content-Type: audio/mpeg, audio/x-mpeg, audio/x-mpeg-3, audio/mpeg3');
header('Content-Disposition: attachment; filename="'.$file->getName().'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file_path));


if(filesize($file_path) < 20971520) {
    @readfile($file_path);
}else{
    $chunkSize = 1024 * 1024;
    $handle = fopen($file_path, 'rb');
    while (!feof($handle))
    {
        $buffer = fread($handle, $chunkSize);
        echo $buffer;
        ob_flush();
        flush();
    }
    fclose($handle);
    exit;
}

Avez-vous une idée de pourquoi j’ai ceci ?

Merci.

Bah j’ai essayé avec plusieurs, au début j’avais mis application/octet-stream, et ensuite uniquement audio/mpeg.

Mais c’est vraiment embêtant, car si je prend exemple sur youtube-mp3.org, ça fonctionne sur mon téléphone et les musiques sont bien ajouté dans ma librairie.

A voir si c’est les mp3 en eux même qui pose problème, je vais tester avec un ajouter manuellement.

Il faut que je regarde effectivement.

Mais sinon j’ai trouvé la source du problème ! C’était ma conversion de fichier MP3 qui foirait. J’ai fais la modification, et mes deux problèmes sont rentrés dans l’ordre.

Merci tout de même de vos interventions.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte