C# 创建文件是可行的,但在下载该文件时,C中不会发生任何事情#
创建一个文件并上传,我还想下载创建的文件。文件创建成功,但下载创建的文件时,我的以下代码不会发生任何变化。这是我的代码,单击按钮时会调用该代码,但无法下载文件。同时检查文件是否存在。它返回true,但这不会给我任何错误,当代码运行时,不会发生任何事情C# 创建文件是可行的,但在下载该文件时,C中不会发生任何事情#,c#,json,download,filestream,C#,Json,Download,Filestream,创建一个文件并上传,我还想下载创建的文件。文件创建成功,但下载创建的文件时,我的以下代码不会发生任何变化。这是我的代码,单击按钮时会调用该代码,但无法下载文件。同时检查文件是否存在。它返回true,但这不会给我任何错误,当代码运行时,不会发生任何事情 [HttpPost] public ActionResult DownloadGetOdds(string filename) { string filepath = Path.Combine
[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" });
}
}
}
文件创建代码
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;
}
用ajax调用调用操作方法下载文件有点棘手
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();
}
}
Html:
下载
函数下载文件(){
var file=$(“#fileNameID”).val();
window.location.href='@Url.Action(“下载几率”,“主页”,新{filename=“ff”})”.replace(“ff”,文件);
}
旁注:从一个操作返回两种类型的响应(文件和JSON)时,您会非常困惑。还不清楚为什么您认为文件创建代码在问题中是必要的…请确保对问题以及显示的代码如何解决问题提供良好的解释。到目前为止,基本上只是“试试这个”,这不是一个有用的信息。事实上,这并不是第一次尝试通过AJAX下载文件,因为重复的问题更合适,尤其是当您对提供好的答案不感兴趣时。
<button class="btn btn-default" id="downloadOdsbtn" onclick="DownloadFile()">Download Odds</button>
function DownloadFile() {
var file = $("#fileNameID").val();
window.location.href = '@Url.Action("DownloadOdds", "Home", new { filename = "ff" })'.replace("ff", file);
}