Une autre méthode plus sécuritaire que StreamWriter et comment peut-on sauvegarder le fichier sur un autre serveur (asp.net c sharp)
J’ai un formulaire : lorsque l’utilisateur le remplit, l’application prendre les informations et crée un fichier data (.csv) et le dépose sur le serveur dans un répertoire où se trouve le site .
Code C# :
using (System.IO.StreamWriter SW = new System.IO.StreamWriter(Server.MapPath("sauve/form/Data_" + strDate + ".csv")))
{
SW.WriteLine(s.FirstName + ";" + s.LastName + ";" + s.Address1 + ";");
SW.Close();
}
En suite j’ai changé le chemin pour mettre le fichier, par système Windows, dans un autre serveur que le serveur de Web :
Code C# :
StreamWriter SW = new StreamWriter(@"\\111.222.1.00\c$\Inetpub\wwwroot\site_toto\ sauve\form \Data_" +
Il faut désactiver le firewall sur serveur pour que cela marche.
Alors au lieu de déposer le fichier par Windows, j’aimerais bien le mettre par un transfert FTP sur un autre serveur, mais je ne sais pas comment je peux le faire.
J’ai un class ! Comment je peux l’intégrer ?
Le code en cs
Code C# :
public static bool FtpUpload(Uri uri, NetworkCredential credentials, FileInfo fileInfo)
{
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(Path.Combine(uri.AbsoluteUri, fileInfo.Name));
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = credentials;
request.UseBinary = true;
request.KeepAlive = false;
request.UsePassive = true;
byte[] buffer = new byte[2048];
int block;
using (Stream stream = request.GetRequestStream())
{
using (FileStream fs = File.OpenRead(fileInfo.FullName))
{
while ((block = fs.Read(buffer, 0, buffer.Length)) > 0)
{
stream.Write(buffer, 0, block);
}
}
}
return true;
en suite
Code C# :
FtpUpload(new Uri("ftp:// 000.111.2.33/Inetpub/wwwroot/site_demo/"),
new NetworkCredential("freebox", "000000"),
new FileInfo(@"C:\Data_" + strDate + ".csv"\"));