首页 > 解决方案 > 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#asp.net

解决方案


推荐阅读