2017-08-04 1 views
1

Je veux enregistrer les URL de certains fichiers de Google Drive dans une base de données avec le type mime. Yat-il un moyen en JavaScript (serait le meilleur) ou PHP pour vérifier l'URL et savoir quel genre de fichier il est? audio/mp3, video/mp4 etc?Existe-t-il un moyen de trouver le type mime à partir d'un lien Google Drive en JS ou PHP?

C'est la syntaxe du fichier a, mais il n'y a aucun moyen de dire quel type de fichier, il est tout simplement basé sur l'URL, malheureusement: https://drive.google.com/uc?export=download&id=0B_Tg8P0D8mAYUHlrX3NWRmwwOGc

Merci pour les prospects!

+0

Je pense que vous devriez utiliser 'CURL' pour faire ce travail. Cela peut gérer quelque chose comme ça. –

+0

JavaScript ou NodeJS? – Luca

Répondre

1

En PHP, vous pouvez utiliser la fonction de gondoler curl_getinfo avec le CURLINFO_CONTENT_TYPE drapeau

<?php 
    // the request 
    $ch = curl_init($documentURL); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_exec($ch); 

    // get the content type 
    echo curl_getinfo($ch, CURLINFO_CONTENT_TYPE); 
?> 

Votre sortie sera le long des lignes de text/html; charset=ISO-8859-1, que vous pourriez explode seulement obtenir le type MIME:

<?php 
    $mime = explode(";", curl_getinfo($ch, CURLINFO_CONTENT_TYPE)); 

    echo $mime[0]; 
?> 
+0

Merci! Cela m'a donné 'text/html; charset = UTF-8' pour un fichier mp3. CURL est-il construit en PHP ou dois-je installer quelque chose? La même chose quand j'essaye localement avec '$ ch = curl_init ('file.mp3');' mais il semble que ce soit le lien que je remplis. Je suppose que les URL de Google Drive contiennent une redirection, est-ce quelque chose qui peut gâcher aussi bien? Aussi, est-ce que cette fonction télécharge le fichier entier ou prend juste l'en-tête? – SeaBass

+0

Je ne l'ai pas testé avec Google Links, car je pensais qu'ils avaient les bons en-têtes. Avec des trucs comme 'file.mp4' cependant, pour moi au moins cela fonctionne bien – Luca

+0

Est-ce que votre code ci-dessus fonctionne pour vous? Même si $ documentURL est une URL vers un autre serveur avec http: //? Est-ce que ça charge le fichier entier ou juste en snitch quelques informations d'en-tête? Merci! – SeaBass