J'accède à une requête httpwebrequest qui renvoie un fichier pdf comme réponse. Je lis cette réponse dans un flux de mémoire, puis je la convertis en fichier. Le problème est que des centaines de fichiers sont créés. Je ne sais pas trop pourquoi, j'ai essayé plusieurs méthodes, et toutes font la même chose... Voici la première méthode qui renvoie le flux de mémoire.
MemoryStream memStream = new MemoryStream();
byte[] buffer = new byte[2048];
int bytesRead = 0;
do
{
bytesRead = _ResponseStream.Read(buffer, 0, buffer.Length);
memStream.Write(buffer, 0, bytesRead);
} while (bytesRead != 0);
Deuxièmement, convertir en FileStream...
byte[] data = stream.ToArray();
FileStream fs = new FileStream(newFile, FileMode.CreateNew);
fs.Write(data, 0, data.Length);
Des idées ?
ÉDITER POUR AJOUTER PLUS DE CODE...
public MemoryStream GetToStream()
{
if (_Req == null)
throw new Exception("HttpWebRequest is not initialised");
GetResult(_Req);
MemoryStream memStream = new MemoryStream();
byte[] buffer = new byte[2048];
int bytesRead = 0;
do
{
bytesRead = _ResponseStream.Read(buffer, 0, buffer.Length);
memStream.Write(buffer, 0, bytesRead);
} while (bytesRead != 0);
_ResponseStream.Close();
if (memStream.Length > 0)
return memStream;
else return null;
}
newFile est le chemin d'accès au serveur du fichier à créer.
byte[] data = stream.ToArray();
FileStream fs = new FileStream(newFile, FileMode.Create);
fs.Write(data, 0, data.Length);
fs.Close();
J'ai essayé stream.WriteTo(fs), et la même chose se produit. C'est assez bizarre.