我使用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或......中。
答案 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();