我必须下载文件并使用文件返回模型中的一些数据。
我正在研究它,但我找不到任何结果来做到这一点。现在我可以说“这是不可能的”,但也许你们中的一些人可以回答我的问题。 我需要这样的东西:
...return Json(new {data:"some string", File("some.zip")});
另外,我在客户端使用angularJS。所以要与服务器连接,我使用$http
语句,作为responseType,我有“arraybuffer”。
答案 0 :(得分:1)
您可以对文件进行base64编码,并将其作为JSON属性发送:
Byte[] bytes = File.ReadAllBytes("path");
String file = Convert.ToBase64String(bytes);
// JObject from Newtonsoft Json.net library
var json = new JObject
{
{"data","some data" },
{"file", file },
// You could add some file properties as well :
{"filesize": 54836 },
{"filetype": "image/jpeg"},
{"filename": "profile.jpg"},
};
return Json(json, JsonRequestBehavior.AllowGet);
然后,在您的angular / javascript代码中,您可以参考this article(未经测试)转换回编码文件。