2017-06-27 4 views
1

J'ai un fichier testme.txt qui a "test test test test" comme texte et j'utilise Oracle pour récupérer le fichier comme blob et j'utilise byte [] pour stocker le Les données. Les données que je reçois d'Oracle sont "74657374207465737420746573742074657374". Lorsque j'essaie de télécharger ce fichier, le fichier téléchargé contient des symboles étranges. Le code que j'ai essayé estTélécharger des données de blob comme fichier dans MVC

public ActionResult DownloadFiles(string fileSeq) 
    {    
     var byteArray=byte_array_got_from_oracle; 
     var stream = new MemoryStream(byteArray); 
     return new FileStreamResult(stream, MediaTypeNames.Application.Octet); //since the file could be of any type 
    } 

J'ai essayé de diverses manières et ne semble télécharger le fichier texte avec les données d'origine.

+0

Comment êtes-vous 'byte_array_got_from_oracle'? – mason

+0

@mason: Il y a une fonction de paquet Oracle qui retourne les données en XML et je convertis cela en objets de classe – praveen

+0

XML? Vous voyez, ça ne sonne pas bien. C'est pourquoi vous devez inclure un [MCVE] (https://stackoverflow.com/help/mcve) dans votre question. Votre question n'est pas complète. – mason

Répondre

0

Essayez cette solution:

public ActionResult DownloadTest() 
    { 
     var data = new byte[] { 0x74, 0x65, 0x73, 0x74, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x74, 0x65, 0x73, 0x74 }; 


     return File(data, MediaTypeNames.Application.Octet); 
    } 

Et le fichier téléchargé contient:

test test test test 
+0

Le tableau d'octets que j'ai a des valeurs comme "249, 142, 185, ..". Je ne sais même pas ce que ces valeurs sont – praveen

+0

Il ne metter pas, la solution est d'utiliser la méthode File (byte_array_got_from_oracle, MediaTypeNames.Application.Octet) pas FileStreamResult – alexqc