2009-10-20 3 views
3

Je voudrais savoir quels événements sont exécutés (le cas échéant) après qu'un utilisateur a choisi de soumettre un fichier à télécharger sur une page ASP.NET. Aurais-je besoin de modifier quelque chose au niveau IIS?Quel est le cycle de vie d'un téléchargement de fichier ASP.NET sur du code?

Les événements du cycle de vie de la page doivent-ils être déclenchés lorsque l'utilisateur télécharge un fichier?

Je vois un comportement différent sur mon serveur de développement de Visual Studio en ce qui concerne le serveur IIS je déploie à:

sur le serveur de développement, les événements du cycle de vie obtenir déclenché lorsqu'un fichier obtient sélectionné, sur le serveur déployé ils ne le font pas ..

quelles classes aurais-je besoin de passer outre, quels paramètres web.config dois-je changer, afin de modifier le comportement par défaut du téléchargement? Le problème que j'ai, est de trouver de la documentation sur la façon d'avoir du code exécuté avant que le fichier soit téléchargé, mais après qu'un fichier ait été sélectionné.

P.S. Ceci est lié à une question précédente de la mienne here, mais approché d'une manière très différente dans l'espoir de comprendre l'ensemble du processus de téléchargement, donc j'ai pensé que c'est une question différente tous ensemble.

+0

quel contrôle utilisez-vous pour obtenir une interface de téléchargement de fichiers? –

+0

pas de contrôles spéciaux, j'utilise l'ASP.Formulaire NET comme:

Répondre

2

Non, il n'a aucun cas pour le téléchargement de fichiers (peut-être sur .net 4)

ce que je faisais était une classe qui dérive de l'objet de téléchargement et sur l'événement OnLoad quelque chose comme ceci:

public event EventHandler OnUpload; 
protected void OnLoad(...){ 
    if (this.HasFile && this.OnUpload != null) 
    this.OnUpload(this, EventArgs.Empty); 
} 

sorte de cela.

Joe

- Edit: Oh, je relis votre message et que vous voulez savoir quand les gens sélectionne un fichier, mais il n'a pas encore été envoyé au serveur? c'est javascript. Le côté serveur ne peut pas savoir quand les utilisateurs le sélectionnent sans envoyer d'informations au serveur. Vous pouvez développer une fonction WebService qui est appelée quand l'entrée de l'entrée a été appelée, mais je ne sais pas si c'est une bonne idée. Pouvez-vous utiliser javascript pour cela?

essayer:

<asp:textbox id="t1" runat="server"/> 

sur le code derrière:

t1.Attributes.Add("onchange", "alert('it changed its value: ' + this.value);"); 

espère que cela aide.

+0

oui, javascript pourrait déclencher des choses sur le serveur, mais je me demande si je pourrais attraper quelque chose avec le httpcontext afin que je puisse manipuler réellement ce qui se passe .. vérifier la taille du fichier de téléchargement et ainsi de suite. –

+0

ce qui me laisse perplexe est le fait que Cassini, le serveur intégré dans Visual Studio déclenche des événements lorsque vous sélectionnez un fichier .. pourquoi? et si oui, pourquoi se déclencherait-il sur le serveur Cassini et non sur l'IIS déployé? –

+0

Cassini est le serveur web spécialisé pour Visual Studio, il a probablement une intégration avec les contrôles IE ou même COM des webbrowsers, donc ce n'est pas la même chose en studio visuel extérieur ... Vous pouvez consulter le fichier avec javascript, mais le plus va faire est de voir le nom du fichier et le chemin dans l'ordinateur. Vous pouvez utiliser activeX pour obtenir la taille du fichier, mais cela ne fonctionnera que sur IE, ici: http://forums.digitalpoint.com/showthread.php?t=6704. Pour les autres navigateurs, je pense que Flash peut vous aider. Avons-nous vous aider? – Jonathan

1

Pour exécuter du code avant le téléchargement, il faudrait que le code JavaSript soit exécuté dans le navigateur. Voir ma réponse à une question sur le filtrage des téléchargements de fichiers en fonction du type:

How to filter which files can be seen on upload dialog box?

+0

Salut, oui, j'ai trouvé cela utile dans une certaine mesure, vous voyez que j'essaie de vérifier la taille du fichier, je ne pense pas que cela puisse être fait avec JavaScript .. à la fin, je voudrais mesurer la taille de la demande qui contient aussi la taille du fichier à envoyer –

+0

Je crois que vous devriez regarder dans un uploader Flash ou Silverlight pour cela. Je ne serais pas surpris s'il y avait un téléchargeur gratuit qui a fourni cette information par le biais de crochets JavaScript. Malheureusement, je n'en connais aucune sur le dessus de ma tête. –

+0

oui, toute application ActiveX, Flash ou SilverLight ferait, JavaScript ne serait pas en mesure de le faire, je pense que si .. (ce serait bien) :) merci –

Questions connexes