Quelle est la meilleure façon de détecter qu'une URL est celle d'une image?Quelle est la meilleure façon de détecter qu'une URL est celle d'une image?
Répondre
En utilisant PHP:
Safest - Récupère les données d'image réelle. Effectuez un
getimagesize()
pour déterminer le type d'image en lisant les octets d'en-tête dans le fichier. Le plus rapide - récupère la ressource, analyse les en-têtes de réponse et recherche l'en-têtecontent-type
. Cette méthode n'est pas aussi fiable que la première: Le serveur peut être menteur ou mal configuré.Encore plus rapide - effectuez une requête HEAD sur l'URL et recherchez l'en-tête
content-type
. Peut ne pas fonctionner pour les ressources d'images dynamiques. Je n'ai aucune expérience avec ceci, ainsi le kilométrage peut varier. Ultra-paranoïaque plus sûr mais slooow - récupère les données d'image réelles en utilisant PHP, les copie dans une nouvelle ressource d'image en utilisant la bibliothèque GD, et enregistre le résultat. Si ce processus fonctionne, il est garanti être une image valide et non endommagée. Intensive en ressources certains formats d'image valides qu'un navigateur prend en charge mais que GD ne tombera pas sous la table.
J'irais pour la première option.
Utilisation de JavaScript:
- Charge la ressource d'image dans un élément
img
. Si l'événementonload
se déclenche et que l'image a des dimensions physiques par la suite, le navigateur a réussi à charger l'image.
Le type de contenu ne garantit toujours pas qu'il est vraiment (pour sûr); vu des occasions où les choses sont mal gérées. J'aime la vérification getimagesize() plus robuste, cependant. – zanlok
Mise en service de la dernière partie (JavaScript): http://jsfiddle.net/qXTQS/ –
Peut-être regarder les en-têtes HTTP? Juste une pensée.
- inspecter headers
- pour vérifier l'extension dans l'URL (.gif/ .png, etc.)
L'extension renvoie souvent des résultats corrects, mais n'est pas un facteur fiable dans les URL –
Si vous avez seulement l'URL plutôt que la réponse du serveur vous donnera quand vous demandez l'URL, alors la seule chose que vous pouvez faire est de deviner en fonction de l'extension du fichier, mais il n'y a AUCUNE garantie qu'un fichier se terminant par .jpg est une image ou qu'un fichier se terminant par .php n'est pas une image.
Vous pouvez probablement être raisonnablement heureux les URL se terminant par .jpg, .gif, .png etc. seront des images mais ce n'est pas garanti.
Pour toute autre chose, c'est essentiellement impossible, sauf si vous le retrouvez.
- 1. Quelle est la meilleure façon de détecter la couleur blanche?
- 2. Quelle est la meilleure façon d'externaliser les URL?
- 3. Quelle est la meilleure façon de détecter si un serveur proxy est disponible?
- 4. Quelle est la meilleure façon d'apprendre WCF?
- 5. Quelle est la meilleure façon d'exécuter `sum_by_sql`?
- 6. Quelle est la meilleure façon d'implémenter hashCode()?
- 7. Quelle est la meilleure façon d'apprendre CUDA?
- 8. Quelle est la meilleure façon d'habiller mon application iPhone (similaire à celle de l'application Notes)?
- 9. Quelle est la meilleure façon de détecter si un IDataReader est vide?
- 10. Quelle est la meilleure façon de détecter si un objet Javascript donné est un élément DOM?
- 11. Quelle est la meilleure façon de détecter si Excel 2003 est installé?
- 12. Quelle est la meilleure façon de détecter qu'Adobe Acrobat Reader est installé à partir d'un navigateur?
- 13. Quelle est la bonne façon de détecter window.unload dans sproutcore
- 14. Quelle est la meilleure et la plus rapide façon de comparer deux URL?
- 15. Quelle est la meilleure façon d'instancier de nombreux objets JavaScript?
- 16. Quelle est la meilleure façon d'effectuer une concaténation de chaîne pour créer une URL dynamique?
- 17. Quelle est la meilleure façon de déboguer un écrasement explorer.exe?
- 18. Quelle est la meilleure façon de gérer les images cassées?
- 19. Quelle est la meilleure façon de détecter la distance entre deux iphone/ipod/ipad?
- 20. Quelle est la meilleure façon de charger la balance? PHP
- 21. La meilleure façon de vérifier si une URL est valide
- 22. Quelle est la meilleure façon de détecter si un mot de NSString a un numéro?
- 23. Quelle est la meilleure façon de détecter le code de pays d'un site Web?
- 24. Quelle est la meilleure façon d'obtenir le hachage d'un QPixmap?
- 25. Quelle est la meilleure façon d'échantillonner/profiler une application PyObjC?
- 26. Quelle est la meilleure façon de trouver l'inverse de datetime.isocalendar()?
- 27. Quelle est la meilleure façon de sel mot de passe?
- 28. Migration de données: Quelle est la meilleure façon de migrer?
- 29. quelle est la meilleure façon d'analyser la requête brute d'utilisateur et détecter ce qui veulent rechercher
- 30. Quelle est la meilleure façon de détecter l'agent utilisateur d'un client?
Meilleur que dans, plus sûr, ou le plus rapide? –
Avec ou sans en faire la demande en premier? –
@MK_Dev: Vous ne pouvez pas le détecter sans faire une requête. Un serveur est libre de retourner tout type de contenu qu'il souhaite pour n'importe quelle URL, indépendamment de l'extension de fichier.(Il n'y a pas vraiment un concept d'extension de fichier pour les URL.) – cdhowie