C# 根据URL名称单击按钮下载文件

C# 根据URL名称单击按钮下载文件,c#,asp.net,C#,Asp.net,我正试图在本地主机上尝试一个文件共享Web应用程序,我正在努力工作,嗯…我有一个小问题,也许我不太擅长解释它,所以我没有得到我需要的答案,但我会尽力在这里解释 因此,我正在尝试为上传的文件创建一个“下载页面”,我想让按钮按一下下载不同的文件,这取决于URL,我想在按钮上显示文件大小。(与Mediafire将页面下载到文件的方式类似,如果这有任何帮助的话) 我不确定我是否解释得足够好,但主要问题是我希望在单击按钮时下载的文件取决于URL名称。这可能吗?如果没有,还有其他选择吗?任何地方的帮助都将不

我正试图在本地主机上尝试一个文件共享Web应用程序,我正在努力工作,嗯…我有一个小问题,也许我不太擅长解释它,所以我没有得到我需要的答案,但我会尽力在这里解释

因此,我正在尝试为上传的文件创建一个“下载页面”,我想让按钮按一下下载不同的文件,这取决于URL,我想在按钮上显示文件大小。(与Mediafire将页面下载到文件的方式类似,如果这有任何帮助的话)


我不确定我是否解释得足够好,但主要问题是我希望在单击按钮时下载的文件取决于URL名称。这可能吗?如果没有,还有其他选择吗?任何地方的帮助都将不胜感激,谢谢您的时间

这就是我的工作原理,请注意,我当前的解决方案是在dotnet core controller中

    [HttpGet("[action]")]
    public async Task<FileResult> ExportExtraAsync(int id)
    {
        // get file details in db
        var toDownload = await unitOfWork.ExtrasRepository.GetByIdAsync(id);
       // build a file path
        IFileProvider provider = new PhysicalFileProvider(Path.GetDirectoryName(toDownload.FileDirectory));
        IFileInfo fileInfo = provider.GetFileInfo(Path.GetFileName(toDownload.FileDirectory));
        var readStream = fileInfo.CreateReadStream();
        // return a file stream, this will force the browser to download
        return File(readStream, System.Net.Mime.MediaTypeNames.Application.Octet, Path.GetFileName(toDownload.FileDirectory));
    }
[HttpGet(“[action]”)
公共异步任务ExportExtraAsync(int id)
{
//获取数据库中的文件详细信息
var toDownload=await unitOfWork.ExtrasRepository.GetByIdAsync(id);
//构建文件路径
IFileProvider provider=new PhysicalFileProvider(Path.GetDirectoryName(toDownload.FileDirectory));
IFileInfo fileInfo=provider.GetFileInfo(Path.GetFileName(toDownload.FileDirectory));
var readStream=fileInfo.CreateReadStream();
//返回文件流,这将强制浏览器下载
返回文件(readStream,System.Net.Mime.MediaTypeNames.Application.Octet,Path.GetFileName(toDownload.FileDirectory));
}

url应该是
“/api/Extras/exportextrasync?id=123”
,其中id可以更改,并允许为不同的url下载不同的文件。

您使用哪一位?解决如何获得文件大小的问题?在网页上放置按钮?更改URL?@Neil我很确定我可以按照自己的方式处理文件大小,在网页上放置按钮也很容易…URL是这里的主要问题,尽管从另一个角度考虑,不要根据URL更改按钮操作,只需使用所需的正确URL创建按钮即可。这是可能的,到目前为止你尝试了什么?你是如何存储这些文件的?@Neil有什么提示我可以在那里使用吗?比如,有什么具体的东西我可以使用或研究整个URL的事情吗?我还是个新手,我甚至不知道如何更改或使按钮对我想要的URL做出反应。谢谢你的回复