6
votes

Asyncfiledupload restreindre la taille du fichier à télécharger

J'utilise asyncfiledupload afin de permettre aux utilisateurs de télécharger de manière asynchrone des fichiers.

Je veux limiter la taille du fichier sur 1 Mo. p>

jusqu'à ce que j'ai vu que je peux Seulement obtenez la longueur du fichier lors de l'achèvement de téléchargement p>

comme lorsque le téléchargement démarre: p>

(onclientuploadstarté) p> xxx pre>

arg.get_length () Est null, donc je ne peux pas l'utiliser ... p>

et lorsque le téléchargement est terminé: p>

(onclientuploadcomplete) p>

function UploadComplete(sender,args) 
{
    //if bigger than 1MB (approximately)
    if (args.get_length() > 1000000 ) 
    {
        ShowActionNotificationError( errorMessage); 
        return false;  
    }
}


0 commentaires

6 Réponses :


0
votes

Vous pouvez vérifier sa taille dans FileduploadComplete sur le côté serveur xxx


5 commentaires

Ouais mais ... Que se passe-t-il si un utilisateur choisit un fichier de 100 Mo à télécharger, et il attend longtemps qu'il se termine, et seulement il se rendra compte qu'il est trop grand? Je veux savoir avant ...


Ce gestionnaire d'événements est touché dès que vous sélectionnez un fichier à télécharger ... vous pouvez donc vérifier sa taille dès qu'il pénètre dans ce gestionnaire .... Si c'est avec les limites, allez-y et télécharger ailleurs casser.


Si cela se heurte dès que ... Comment puis-je arrêter le processus et montrer à l'utilisateur l'erreur sans rafraîchir?


Je l'ai vérifié et il semble vraiment que cet événement soit frappé à la fin, lorsque le fichier est déjà entièrement téléchargé ...


Je suis conscient que JavaScript ne peut pas accéder et connaître le fichier pour des raisons de sécurité. Mais ... Voir des solutions de travail comme dans Gmail, me fait me demander comment c'était fait ... Clairement c'est possible



5
votes

Après une recherche substantielle, je me rends compte que cela ne peut pas être fait avec Ajax.

Alors que je regarde autour des sites comme Yahoo Mail and Gmail, il est fait par Flash.

en hotmail c'est fait avec Silverlight.

Il y a un contrôle de téléchargement gratuit (pour l'instant) (pour l'instant) appelé uploadify ...

Je travaille maintenant à l'intégrer.

Si je me trompe, corrigez-moi! :)


0 commentaires

0
votes

Oui, que dit Mithir est correct. C'est vraiment lourd pour donner l'expérience utilisateur moderne à l'aide de la commande HTML. Une autre alternative est swfupload


0 commentaires

0
votes

Si vous avez besoin de vérifier la taille du fichier avant que le contenu ne soit en réalité téléchargé sur le serveur, vous êtes mieux éteint à l'aide de la composante ASP Filedupload. Avec cela, vous pouvez vérifier et décider si vous souhaitez télécharger le fichier ou non.

If FileUpload1.FileContent.Length <= DesiredFileSize Then

   <<Code to Upload the file>>

End If


1 commentaires

L'OP recherche une vérification latérale du client de la taille du fichier. Ceci est une vérification latérale du serveur. Le fichier doit être téléchargé quand même, ce qui n'est pas ce que veut l'OP.



0
votes

CERO 14 FEB 14 '12 à 5:51

Le fichierupload1 non est fonctionnel pour UPDATEPTPANEL:

contrôles qui ne sont pas compatibles avec les commandes UpdatePanel

Les contrôles ASP.NET suivants ne sont pas compatibles avec les mises à jour de la page partielle et ne sont donc pas conçues pour fonctionner à l'intérieur d'une commande UpdatePanel:

Contrôle des arbres sous plusieurs conditions. On est quand les rappels sont Activé qui ne font pas partie d'un post-pack asynchrone. Un autre est quand Vous définissez des styles directement sous forme de propriétés de contrôle au lieu d'implicitement Styliser la commande en utilisant une référence aux styles CSS. Un autre est Lorsque la propriété Enableclientscript est false (la valeur par défaut est vraie). Un autre est que si vous modifiez la valeur de la propriété EnaBrecLientscript entre les post-packs asynchrones.

Contrôle du menu Lorsque vous définissez des styles directement sous forme de propriétés de contrôle au lieu de coiffer implicitement le contrôle en utilisant une référence à CSS styles.

Contrôles de fichier Filedupload et HTMlinPhatLUT lorsqu'ils sont utilisés pour télécharger fichiers dans le cadre d'un post-plan asynchrone.

GridView and Data Dataview contrôle quand leur EnableTortingandPagagingCallbacks La propriété est définie sur True. Le défaut est faux.

Connexion, PasswordRecovery, ChangePassword et Catégorie de Catégorie dont le contenu n'a pas été converti en modèles modifiables.

Le contrôle de substitution.

Pour utiliser un contrôle Filedupload ou HTMLUPUTFILE à l'intérieur d'un contrôle UpdatePanel, définissez la commande de publication qui soumet le fichier pour être un contrôle de bande de postback pour le panneau. Le contrôle Filedupload et HTMLUPUTFILE ne peuvent être utilisés que dans des scénarios de publication.


0 commentaires

6
votes

Vous pouvez le faire dans l'événement de démarrage du côté client.

if (sender._inputFile.files[0].size >= maxFileSize) {
    sender._stopLoad();
}


0 commentaires