Cela devrait être assez simple, et le téléchargement fonctionne. MAIS quand j'ouvre le fichier téléchargé sur le serveur FTP il montre des données binaires qui sont juste quelques caractères étranges qui ressemblent à ceci [] [] [] [], et c'est la bonne taille de fichier. comment ajouter des attributs ou des en-têtes qui indiqueront que ce fichier est un XML?ASP.NET C# télécharger le contenu MemoryStream via FTPwebRequest problème
public bool ProcessBatch(MemoryStream memStream)
{
bool result = true;
FTPaddress = DistributionResources.ftpServer;
CompleteFTPPath = DistributionResources.ftpPath;
request = (FtpWebRequest)FtpWebRequest.Create(FTPaddress + CompleteFTPPath);
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Ftp.UploadFile;
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = false;
try
{
byte[] buffer = new byte[memStream.Length];
memStream.Read(buffer, 0, buffer.Length);
memStream.Close();
using (Stream reqStream = request.GetRequestStream())
{
reqStream.Write(buffer, 0, buffer.Length);
}
//Gets the FtpWebResponse of the uploading operation
response = (FtpWebResponse)request.GetResponse();
Console.WriteLine(response.StatusDescription); //Display response
}
catch(Exception ex)
{
result = false;
}
return result;
}
Merci beaucoup
Oui, il est déjà défini sur true, vous pouvez le voir dans le code ci-dessus. Merci. – Sergey
Non, je voulais dire le définir sur false. Le définir sur true signifie télécharger le contenu sous forme de données binaires - d'où la raison pour laquelle vous le voyez comme des données binaires sur le serveur. Je vais éditer la réponse pour être plus clair. –
Je l'ai essayé avec UseBinary mis à faux aussi, même effet exact. Je suis allé de l'avant et au lieu d'utiliser le flux de mémoire, je l'ai écrit dans le fichier, puis FileStremed, il fonctionne de cette façon. – Sergey