Comment télécharger des fichiers depuis ASP.NET vers une autre application Web

StackOverflow https://stackoverflow.com/questions/148322

  •  02-07-2019
  •  | 
  •  

Question

J'ai un scénario dans lequel je dois télécharger un fichier depuis une application Web et l'utiliser dans une autre. Ma configuration est la suivante.

  • Un serveur hébergeant deux applications Web dans IIS - les deux sont ASP.NET
  • L’une des applications est utilisée pour administrer l’autre + un tas d’autres choses
  • Je dois télécharger un fichier à partir de cette application d'administration, enregistrer le chemin dans la base de données via le DAL, puis accéder au fichier à partir de l'autre application Web, ce qui fournirait le fichier à télécharger
  • Je garde les fichiers sur le disque, seul le chemin dans la base de données

Où et comment puis-je télécharger le fichier pour pouvoir y accéder à partir des deux applications Web? Devrais-je utiliser un service ou existe-t-il un autre moyen?
Voici quelques questions connexes que j'ai trouvées, mais je ne pense pas qu'elles couvrent mon scénario particulier:
Comment gérer les téléchargements de fichiers sur un serveur d'images dédié? <
Comment télécharger un fichier sur un service WCF?

Était-ce utile?

La solution

Puisque les deux applications sont sur le même serveur, cela devrait être simple:

  • Enregistrez le fichier téléchargé quelque part sur le serveur.
  • Créer un répertoire virtuel dans n’importe quel application ayant besoin d'exposer le fichiers pointant vers le chemin physique.
  • Enregistrez le chemin virtuel dans la base de données pour plus de souplesse

Autres conseils

Vous pouvez configurer un nouveau répertoire virtuel dans chaque application qui pointe vers le même dossier sur votre serveur où vous souhaitez télécharger les fichiers. Disons que vous avez créé un nouveau dossier sur votre lecteur c: appelé "uploads". c'est-à-dire c: \ uploads. Ensuite, dans IIS, configurez un nouveau répertoire virtuel appelé "uploads". qui pointe sur c: \ uploads pour chaque application Web. Cela devrait donner aux deux sites un accès aux fichiers.

Puis-je vous demander pourquoi vous ne conservez pas le fichier dans la base de données? Cela faciliterait grandement les échanges.

En supposant que le chemin du fichier que vous définissez dans la base de données soit accessible à partir de l'application Web non-administrateur (ce qui semble être le cas), le fichier doit simplement aller quelque part pour lequel les deux applications disposent de droits d'accès. Seule l’application admin doit disposer d’un accès en écriture.

Vous pouvez configurer quel compte d'utilisateur un site Web IIS sera exécuté sous Propriétés du site Web > Sécurité du répertoire dans la console de gestion IIS. Assurez-vous ensuite de définir les autorisations de répertoire appropriées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top