Bonjour à tous,
J'ai un programme qui me permet d'envoyer des fichiers par HTTP. Pour cela, je lisais le contenu des fichiers en faisant :
puis j'envoyais ce buffer en plusieurs fois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ifstream file (filename, ios::in|ios::binary|ios::ate); size = file.tellg(); file.seekg (0, ios::beg); char * bufferToSend = new char[size]; file.read (bufferToSend, size ); //Envoi du buffer par http
C'était assez crade parce que ca chargait tout en mémoire et j'avais des erreurs sur les gros fichiers.
Du coup j'ai modifié mon code avec ceci :
Donc je reçois bien mes fichiers mais g un GROOOOS problème lorsque le fichier que j'envoie contient un espace. Le fichier recu fait la meme taille mais le contenu est completement différent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ifstream file (filename, ios::in|ios::binary|ios::ate); size = file.tellg(); file.seekg (0, ios::beg); for (int i = 0 ; i < size; i +=4096) { //G simplifié mais en gros c ca char * bufferToSend = new char[4096]; file.read (bufferToSend, 4096); //Envoi du buffer par http }
Y aurait-il un bug dans la méthode read lorsque les fichiers ont des espaces dans le nom ?
Merci d'avance pour toutes vos réponses.
Partager