Dans mon application web (asp.net,c#), je télécharge un fichier vidéo dans une page, mais je ne veux télécharger que des vidéos flv. Comment puis-je restreindre lorsque je télécharge d'autres vidéos d'extension ?
Réponses
Trop de publicités?Vous pouvez simplement lire le flux d'un fichier
using (var target = new MemoryStream())
{
postedFile.InputStream.CopyTo(target);
var array = target.ToArray();
}
Les premiers index 5/6 vous indiqueront le type de fichier. En cas de FLV ses 70, 76, 86, 1, 5.
private static readonly byte[] FLV = { 70, 76, 86, 1, 5};
bool isAllowed = array.Take(5).SequenceEqual(FLV);
si isAllowed
est égal true
alors son FLV.
OU
Lire le contenu d'un fichier
var contentArray = target.GetBuffer();
var content = Encoding.ASCII.GetString(contentArray);
Les deux/trois premières lettres vous indiqueront le type de fichier.
En cas de FLV, son "FLV......"
content.StartsWith("FLV")
string FileExtn = System.IO.Path.GetExtension(fpdDocument.PostedFile.FileName);
La méthode ci-dessus fonctionne bien avec le Firefox et IE : Je suis capable de voir tous les types de fichiers comme zip,txt,xls,xlsx,doc,docx,jpg,png.
Mais quand j'essaie de trouver l'extension de fichier de Google Chrome, j'échoue.