2010-03-18 4 views
2

J'ai besoin que l'utilisateur puisse télécharger plusieurs fichiers sur mon serveur, j'utilise donc l'utilitaire SWFUpload. SWFUpload envoie les fichiers un par un, et j'ai besoin de les stocker tous dans le même répertoire temporaire. Mon gestionnaire ASP.NET reçoit les fichiers un par un et je peux stocker le fichier de manière appropriée.SWFAppuyez sur la gestion côté serveur de plusieurs fichiers

Mon problème est: Comment savoir quels fichiers appartiennent au même téléchargement? Reformulé, comment connecter les fichiers dans mon gestionnaire?

Répondre

2

Je vois 2 façons de le faire (mais ils héritent de la même idée).

L'idée est basée sur la chose que vous devriez avoir quelque chose comme sessionId paramètre. Cette valeur doit être unique pour chaque ensemble de fichiers. Vous pouvez utiliser javascriptuuid générateurs ou quelque chose comme ça.

En outre, cette variable sessionId peut passer à travers la chaîne de requête (un peu modifié l'url de votre gestionnaire): ~/UploadHandler.ashx?sessionId={whatever} ou en tant que paramètre post (devinez, la meilleure façon). La valeur peut être récupérée côté serveur en utilisant: context.Request["SessionId"] par exemple. Du côté client, vous devriez être capable de modifier dynamiquement les paramètres de publication ou l'URL du gestionnaire. Cela pourrait se faire en utilisant:

void addPostParam(name, value) 

La fonction addPostParam ajoute une paire nom /valeur qui sera envoyée à le POST pour tous les fichiers téléchargés.

La paire nom/valeur apparaît également dans le paramètre post_params.

ou

void setUploadURL(url) 

modifie le réglage Dynamiquement UPLOAD_URL .

méthodes client. Ils devraient être appelés à partir de la

fileDialogComplete(number of files selected, number of files queued, total number of files in the queued) 

L'événement se déclenche fileDialogComplete après la fenêtre de dialogue de sélection de fichier a été fermé et ont été traitées tous les fichiers sélectionnés . L'argument 'number of files queued' indique le nombre de fichiers mis en file d'attente à partir de la sélection de la boîte de dialogue (par opposition à au nombre de fichiers de la file d'attente).

méthode.

Espérons que cela aide.

+0

@Alex: Merci pour votre suggestion. J'avais le sentiment que c'était l'approche que j'avais besoin de prendre, mais j'avais espéré de la magie :) – Chau

Questions connexes