Question

Je veux suivre le type de fonctionnalité

Il y a deux utilisateurs A et B Les deux visitent la même page
Cette page a un bouton (envoyer un fichier).
Lorsque A Cliquez sur le bouton un Open Dialog la boîte doit apparaître
Lorsque A Sélectionne un fichier à partir Open Dialog boîte alors il devrait y avoir un lien apparaît sur BLa page contenant le nom du fichier
Lorsque B Cliquez sur le lien, un SaveAs La boîte de dialogue doit apparaître et après avoir donné le nom et le téléchargement du fichier de chemin doit démarrer.

Tout type d'aide dans ce contexte sera apprécié!

Était-ce utile?

La solution

La boîte de dialogue ouverte est obtenue avec l'entrée HTML: <input type="file">

La boîte de dialogue Save As est obtenue avec l'ancre HTML: <a href="www.myserver.com/download.aspx?filename='the file'">

Après que l'utilisateur A sélectionne un fichier, vous utilisez AJAX ou le formulaire OnSubmit pour télécharger le fichier via une page upload.aspx que vous créez.

Sur la machine de l'utilisateur B, vous utilisez AJAX pour appeler une page UpdateFileList.aspx qui renvoie la liste des fichiers disponibles. Une fois que le nouveau fichier de l'utilisateur A a été téléchargé et enregistré sur le serveur, le prochain ping à partir de l'appel AJAX de l'utilisateur B à UpdateFileList.aspx mettra à jour la liste affichée sur son écran pour inclure le nouveau fichier.

Cliquez sur le fichier appelle la page Télécharger.aspx avec le nom de fichier souhaité - vous devez définir Response.ContentType et Response.AddHeader("Content-Disposition", "attachment:filename=""" & IO.Path.GetFileName(Request.QueryString("filename")) & """") ici. La boîte de dialogue Enregistrer en tant qu'arriver automatiquement.

Autres conseils

Eh bien, la page pourrait être divisée en deux moitiés: l'une avec les commandes de téléchargement de fichiers et l'autre qui interroge toutes les 3 à 4 secondes via Ajax pour voir s'il y a de nouveaux fichiers.

Côté "A" a un contrôle de téléchargement de fichiers standard et utilise la manière .NET standard d'enregistrer les fichiers téléchargés (voir fileupload.postedfile.saveas (chemin), trucs faciles). Une fois le téléchargement de fichier terminé, actualisez cette page.

Côté "B" est une div qui tire son contenu d'un appel Ajax, XML, JSON ou tout simplement du texte. Ayez une page Ajax appelée "link.aspx" qui rejette le contenu dans le format que vous voulez.

Pour les liens, si vous souhaitez forcer la fenêtre "Télécharger", soit les fichiers doivent être un type qui n'est pas affiché normalement dans le navigateur, soit vous devez utiliser une autre page ASPX pour servir le fichier et forcer un boîte de dialogue pour enregistrer ou ouvrir.

Cette page ASPX sera appelée quelque chose comme "file.aspx" et vous pourriez transmettre un param de questiontring ("id" ou quelque chose) pour lui dire quel fichier vous voulez. Votre code derrière cette page déterminera le fichier dont vous avez besoin dans ce param de questiontring, puis servira le fichier:

Response.AddHeader("Content-Disposition", "attachment; filename=" + file.fileName);
Response.AddHeader("Content-Length", file.Length.ToString());
Response.ContentType = "image/jpeg"; // you gotta figure out the content type of the file here though. This is just the one for JPEGS.

byte[] buffer = new byte[file.Length];
dl.Read(buffer, 0, (int)file.Length);

Response.BinaryWrite(buffer);
Response.End();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top