2010-12-11 47 views
0

Comment télécharger des fichiers de l'application Web ASP.NET à tout serveur web (Linux) ..comment télécharger des fichiers

+1

Pourriez-vous s'il vous plaît préciser? Voulez-vous télécharger un fichier depuis un navigateur vers votre application ASP.NET (exécutée sur un serveur Linux), ou voulez-vous télécharger un fichier d'un serveur (exécutant votre application ASP.NET) vers un autre serveur (en cours d'exécution? ..someting, sous Linux)? –

+0

Je veux télécharger un fichier d'un serveur (exécutant mon application ASP.NET) à un autre serveur fonctionnant sous Linux. – kenom

Répondre

0

Si le serveur Linux en question expose un service FTP, puis here's a tutorial pour accéder que .NET. Si FTP n'est pas une option, veuillez spécifier le service que le serveur Linux expose pour le téléchargement de fichiers (Samba, NFS, etc.).

+0

Avez-vous un exemple dans C# – kenom

+0

@kenom: Le code dans ce tutoriel peut être traduit en C# très facilement, il ne semble pas utiliser de constructions VB seulement que j'ai remarqué. Si vous avez besoin, vous pouvez probablement trouver un convertisseur VB .NET vers C# en ligne. Si ce n'est pas le cas, il suffit de le compiler dans VB et d'utiliser Reflector pour le désassembler en C# si vous le devez. Mais, honnêtement, tout cela est exagéré. Le code n'est pas complexe. – David

1

prendre ces mesures comme une ligne directrice générale:

  • comprennent un contrôle serveur ASP.NET pour l'utilisateur de télécharger le fichier
  • ont son chemin SaveAs être un UNC path à un partage sur le serveur distant.

Voici plus sur le FileUpload ASP.NET Server Control at MSDN.

<asp:FileUpload ID="FileUpload1" runat="server" /> 

if (FileUpload1.HasFile) 
{ 
    FileUpload1.SaveAs(@"\\server2\SomeShare\" + FileUpload1.FileName); 
} 

Si vous vouliez les fichiers à sauvegarder d'abord sur votre boîte ASP.NET:

  • enregistrer le fichier localement (quelque chose comme c:\uploads\temp ou ce que vous-
  • à un certain intervalle ou à l'événement que vous avez choisi, déplacez tous les fichiers de ce répertoire temporaire du serveur1 vers le serveur2
  • utilisez System.IO.File.Move
string[] files = System.IO.Directory.GetFiles(@"c:\uploads\temp"); 

foreach (string s in files) 
{ 
    string fileName = System.IO.Path.GetFileName(s); 
    string destFile = System.IO.Path.Combine(targetPath, fileName); 
    System.IO.File.Copy(s, destFile); 
}