c# - ASP.NET 写入 txt 文件并返回 jquery 下载
问题描述
我在 ASP.NET 中创建了一个 txt 文件
string FilePath = HttpContext.Current.Server.MapPath("~/FILENAME.txt");
string FileContent = "";
FileContent += "Text Here" + Environment.NewLine;
File.WriteAllText(FilePath, FileContent);
文件被创建,现在我想做的是在一个方法中返回这个文件,以便它开始下载。
我已经做了一些阅读,首先我必须将它转换为字节,当我尝试这个时:
byte[] fileBytes = System.IO.File.ReadAllBytes(FilePath);
它不起作用:(我做错了什么?
更新
我现在得到了这个:
string FilePath = HttpContext.Current.Server.MapPath("~/FILENAME.txt");
string FileContent = "";
FileContent += "Text Here" + Environment.NewLine;
File.WriteAllText(FilePath, FileContent);
var file = HttpContext.Current.Server.MapPath("~/FILENAME.txt");
HttpContext.Current.Response.AppendHeader("content-disposition", "attachment; filename=NewFile.txt");
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.TransmitFile(file);
HttpContext.Current.Response.End();
此代码在 void 方法中,这是我的 jquery ajax 调用:
$.ajax({
url: "/api/WebService/spPOImportGenImportPOTxt/" + $("#ID").val(),
type: "POST",
contentType: "application/octet-stream; charset=utf-8",
error: function(request, status, error) {
alert("Something went wrong: " + error);
$.unblockUI();
},
success: function(data) {
alert("Data has been successfully saved.");
console.log(data);
$.unblockUI();
}
});
我收到成功警报,但文件未下载,当我 console.log 数据时,它返回 txt 文件中的文本。
解决方案
推荐阅读
- c# - 使用 Entity Framework Core 扩展 EFCore Bulk 扩展的批量读取问题 - 无法让批量读取工作
- magento - Logrotate 日志轮换间隔
- javascript - Vue删除无效输入消息
- laravel - Laravel 活动日志不适用于更新和删除
- elasticsearch - 如何获取elasticsearch中两个地理点之间的距离?
- node.js - 如何将 nvm v0.35.1 升级到 10.19.0
- java - 如何使用 putExtra 从 Activity 向 Java 类发送数据?
- javascript - 如何在 Python 中使用 ul-li 下拉菜单抓取网站?
- c# - 将数据从gridview插入数据库,其中行中的行值不等于0
- arrays - 无法使用 if let 语句推断复杂的闭包返回类型