Est-il possible de connaître la taille de la pièce jointe envoyée dans un e-mail dans asp.net C#?Obtenir la taille des pièces jointes dans asp.net
merci!
Est-il possible de connaître la taille de la pièce jointe envoyée dans un e-mail dans asp.net C#?Obtenir la taille des pièces jointes dans asp.net
merci!
Si vous utilisez System.Net.Mail
et attacher le fichier via la classe Attachment
, chaque pièce jointe doit avoir une propriété ContentStream
contenant le fichier réel. Cette propriété, de type Stream
, a une propriété Length
(de type long
) qui donne la taille du fichier en octets.
Je crois que vous pouvez utiliser la classe HttpFileCollection. Il vous donne accès à tous les fichiers téléchargés par le client. Voici le msdn link
Typiquement, les pièces jointes sont codées en base64 dans System.Net.Mail. Le codage base64 prend 3 octets et les convertit en 4 octets. Ce que vous devez faire est de déterminer la longueur de la pièce jointe (soit Stream.Length, la longueur de byte [], ou la longueur du fichier), et le diviser par 0,75.
Cela vous donnera la taille de la pièce jointe, base64 codé pour SMTP.
Le nombre est une approximation, car la version 'base64' devrait toujours être un multiple de 4 octets. Il ne sera pas difficile d'ajuster cela dans le calcul; pad vers le haut jusqu'à la prochaine même 4 octets. De plus, pour le courrier électronique, il y aura un retour à la ligne (deux octets si vous avez des fins de ligne CRLF) pour environ 68 caractères de base64, dépendant légèrement de la façon dont votre encodeur base64 est configuré et implémenté. – tripleee
Comment l'e-mail est-il envoyé? Comment la pièce jointe est-elle ajoutée à l'e-mail? –
Je déteste les questions qui ont la réponse logique "Oui". – Lazarus
@Lazarus: laissez-moi savoir comment c'est "Oui"? –