如何解决创建文件是可行的,但是下载该文件时,C#中什么也没有
创建文件并上传它,我也想下载创建的文件。文件创建成功,但是当下载该创建的文件时,以下代码没有任何反应。这是我的代码,当单击按钮时会调用该代码不能下载文件。还检查文件是否存在。它返回true,但这不会给我任何错误,并且在运行此代码时没有任何反应。
confirmationWindowSize=0
clientFailureCheckPeriod=30000
consumerWindowSize=0
文件创建代码
[HttpPost]
public ActionResult DownloadGetOdds(string filename)
{
string filepath = Path.Combine(Server.MapPath("~/UploadFiles"),filename + ".json");
if (file.FileExist(filepath) == true)
{
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AppendHeader("Content-Disposition","attachment; filename=" + filename+".json");
Response.Flush();
Response.TransmitFile(Server.MapPath("~/UploadFiles/") +filename + ".json");
Response.End();
return Json(new { result = "SUCCESS" });
}
else
{
return Json(new {result = "Server Error" });
}
}
}
解决方法
使用ajax调用调用动作方法是下载文件的棘手方法。以下代码帮助了我。
public string CreateJsonFile(string path,string data)
{
string status = "";
try
{
using (StreamWriter file = File.CreateText(path))
{
string _data = data;
JsonSerializer serializer = new JsonSerializer();
//serialize object directly into file stream
serializer.Serialize(file,_data);
}
status = "Successfully file created";
}
catch(Exception ex)
{
status = ex.Message;
}
return status;
}
HTML:
public void DownloadOdds(string filename)
{
string filepath = Path.Combine(Server.MapPath("~/UploadFiles"),filename + ".json");
if (file.FileExist(filepath) == true)
{
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.AppendHeader("Content-Disposition","attachment; filename=" + filename + ".json");
Response.Flush();
Response.TransmitFile(Server.MapPath("~/UploadFiles/") + filename + ".json");
Response.End();
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。