C# 将web服务器上的文件下载功能写入客户端PC。

C# 将web服务器上的文件下载功能写入客户端PC。,c#,jquery,C#,Jquery,你好,我需要写一个下载功能,所以当我的网站的用户点击一个按钮,文件下载到那里的电脑 如果我使用此链接,则文件将被下载: http://formvalue.co.za/download/" + fileName + ".xlsx" 但在那里我不能做任何事情之后,所以我需要在一个功能,这样我就可以删除我的服务器下载后的文件了 我使用的是MVC,因此函数可以在Jquery或C#中 任何人都可以提供帮助,如果您需要任何信息,请提前询问,谢谢。您可以简单地使用链接按钮发回服务器并调用以下方法吗 inte

你好,我需要写一个下载功能,所以当我的网站的用户点击一个按钮,文件下载到那里的电脑

如果我使用此链接,则文件将被下载:

http://formvalue.co.za/download/" + fileName + ".xlsx"
但在那里我不能做任何事情之后,所以我需要在一个功能,这样我就可以删除我的服务器下载后的文件了

我使用的是MVC,因此函数可以在Jquery或C#中


任何人都可以提供帮助,如果您需要任何信息,请提前询问,谢谢。

您可以简单地使用链接按钮发回服务器并调用以下方法吗

internal static void ContentToBrowser(string contentType, string filename, string content)
        // Send to browser
        var response = HttpContext.Current.Response;
        response.Clear();
        response.ContentType = contentType;
        response.AddHeader("Content-Disposition", 
                    String.Format("attachment; filename=\"{0}\"", filename));
        var contentLength = response.ContentEncoding.GetByteCount(content);
        response.AddHeader("Content-Length", contentLength.ToString());
        response.Write(content);
        response.End();
}
这允许您将所需内容直接写回客户端,而无需担心存储在服务器上。e、 g

protected void LinkButtonClick(object sender, EventArgs e)
{
     string filename = @"c:\filepath\blah.xlsx";
     string content = File.ReadAllText(filename);
     ContentToBrowser("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "downloaded-blah.xlsx", content);
     File.Delete(filename);
}

然而,我不得不质疑你后来删除文件的动机。您如何知道它已被客户端成功下载和存储?

链接是否必须与该确切格式匹配?这样行吗?你会怎么做?这是一个直接的问题,它是否有效,它不是下载文件的功能,它只是一个链接,一个链接作为url会将我的页面指向下载,然后我就不能再做任何事情了,我想在下载后运行删除代码,但如果我使用链接,则无法运行。但是文件在我的服务器上,我想将其下载到客户端,我不确定此代码的作用是什么?上述代码将使用指定的文件名和内容类型将文件内容直接写回客户端。如果文件在您的服务器上,您可以读取该文件,然后使用此方法将其返回到客户端,然后将其删除。那么contentType和content是什么内容?您从哪里获得此代码的,请链接我,以便我可以在上下文中查看它。