检索二进制数据并加载到相关的文件查看器中

时间:2015-01-13 07:40:48

标签: c# radupload

我使用RadUpload Control上传文件并以二进制格式存储数据现在我得到了二进制数据,我需要在各自的文件查看器中加载Retrived二进制数据...如果(Word中的Docx文件在Adobe中... .if文本查看器中的文本)

以下是我获得二进制数据的代码

string json = class.HttpGet("http://localhost/Service/User.svc/ServiceName");
        json = Regex.Unescape(json);
        dt = (DataTable)JsonConvert.DeserializeObject(json.Trim(new Char[] { ' ', '"', '.' }), typeof(DataTable));
        string data=dt.Rows[0]["Document"].ToString();
        byte[] Data = Convert.FromBase64String("data");

我现在获得了Byte数组中的数据,我需要将数据存储在Docx或Pdf或......中。

3 个答案:

答案 0 :(得分:1)

我尝试了像这样的东西,但创建了Docx文件,没有我上传的数据.......

byte[] Data = Convert.FromBase64String(dt.Rows[0]["Document"].ToString());

        FileStream fs = new FileStream(@"D:\filename.docx", FileMode.Create);
        fs.Write(Data, 0, Data.Length);
        fs.Close();

答案 1 :(得分:0)

您可以使用类似File.WriteAllBytes()的内容来正确地将字节数组写入文件。

简单地做

File.WriteAllBytes("D:\\filename.docx", Data);

那应该这样做。

答案 2 :(得分:0)

尝试过这样......(但仍然没有得到结果)

 Response.Buffer = true;

 Response.Charset = "";

 Response.Cache.SetCacheability(HttpCacheability.NoCache);

 Response.ContentType = dt.Rows[0]["RowId"].ToString();

 Response.AddHeader("content-disposition", "attachment;filename="

 + dt.Rows[0]["FileName"].ToString());

  Response.BinaryWrite(Data);

   Response.Flush();

   Response.End();