2013-05-30 3 views
0

Я только что начал новый проект по WCF, и, честно говоря, я очень новичок в этом с ограниченными знаниями.Получение Json вывода из массива байтов

Так что я пытаюсь открыть файл, который хранится на моем компьютере (например, word, pdf и т. Д.) И отображать содержимое на веб-странице в формате JSon. Я преобразовал файл в массив байтов и попытался отобразить Stream. Когда я это сделал, он попросил меня открыть файл или сохранить его. Я не хочу этого - я просто хочу, чтобы содержимое файла отображалось на моем локальном хосте, когда я вызываю метод.

Вот что у меня есть:

public string GetRawFile() 
    { 
     string file = @"C:\.....\TestFile.pdf"; 
     byte[] rawFile = File.ReadAllBytes(file); 


     //Stream stream = new MemoryStream(rawFile); 
     //DataContractJsonSerializer obj = newDataContractJsonSerializer(typeof(string)); 
     //string result = obj.ReadObject(stream).ToString(); 

     //Deserializing 
     MemoryStream stream = new MemoryStream(); 
     BinaryFormatter binForm = new BinaryFormatter(); 
     stream.Write(rawFile, 0, rawFile.Length); 

     stream.Seek(0, SeekOrigin.Begin); 
     Object obj = (Object) binForm.Deserialize(stream); 

     System.Web.Script.Serialization.JavaScriptSerializer xyz = new System.Web.Script.Serialization.JavaScriptSerializer(); 
     string ejson = xyz.Serialize(obj); 

     WebOperationContext.Current.OutgoingRequest.ContentType = "text/json"; 
     return ejson; 
    } 

Я пытаюсь вернуть строку, и это не работает, но когда я вернусь только поток это выскакивать сообщение «OpenWith».

Также следует использовать GET или POST на моем datacontract. Я использую REST в C#.

ответ

0

Я предполагаю, что ваш файл содержит json. Если это так, просто сделайте это;

string file = File.ReadAllText("C:\path\to\file.extension"); 

Вы делаете проблему намного сложнее, чем должно быть. Просто прочитайте файл и верните его в виде строки. Я думаю, вы хотите использовать GET для метода http. Вообще говоря, вы используете пост, если добавляете новый контент. Если, например, пользовательский запрос заставит приложение записывать некоторые данные в файл или базу данных, вы обычно используете POST для метода http. Если они просто запрашивают данные, вы почти всегда используете GET.

+0

Я просто хочу импортировать любой файл и получить результат в Json .... это возможно ... Я пытаюсь открыть обычный PDF-файл, и именно поэтому я конвертирую файл в поток. – Arka

+0

@Arka Для этого вам придется десериализовать ваш pdf-файл, и для этого недостаточно массива байтов. Формат является проприетарным, поэтому вы не можете просто читать его как обычный текст. Чтобы прочитать файл как json, он должен содержать действительный json. В противном случае вам нужно будет создать некоторые объекты в коде, тогда вы можете сериализовать их в строки json, но вы не можете просто взять байты из любой случайной вещи и записать их как json. – evanmcdonnal

+0

Большое спасибо за ваш ответ ... знаете ли вы, как я могу десериализовать PDF или текстовый файл в Json? любая помощь была бы принята с благодарностью – Arka

Смежные вопросы